2016-07-19 50 views
0

我想根據特定條件禁用鏈接。就目前而言,我剛剛一直在討論腳本/ html,看看一切如何協同工作。onclick =「」的功能<a></a>標記不起作用 - 我錯過了什麼?

我發現下面的代碼的工作,我不知道爲什麼 -

HTML:

<a target="_blank" href="{{attachment.url}}" class="btn btn-link">{{attachment.name}}</a> 

JS:

$scope.agreementPermission = function() { 
    return false; 
}; 

這似乎是傳統的禁用href的方式,但由於某種原因鏈接仍然可點擊並打開頁面。

以下確實工作:

<a target="_blank" href="{{attachment.url}}" onclick="return false" class="btn btn-link">{{attachment.name}}</a> 

也許這會更容易些 - 我想知道我怎麼能配置實體「attachment.url」,這樣我可以只引用HREF一些像這樣的功能:

<a target="_blank" href="javascript: agreementPermission()" onclick="return agreementPermission()" class="btn btn-link">{{attachment.name}}</a> 

JS:

$scope.agreementPermission = function() { 
    if (someCondition) 
     open {{attachment.url}}; //I know this is not correct/allowed 
} 

我錯過了什麼?還有什麼建議?謝謝SO社區!

<a target="_blank" 
    ng-href="{{someCondition ? attachment.url : ''}}" 
    class="btn btn-link">{{attachment.name}}</a> 
+3

您是否正在使用angular ?,如果是這樣,您應該使用ng-click,而不是點擊 –

+0

是的。我會製作一個標籤。 – keslami

+0

爲什麼不使用按鈕,只需用js打開頁面? –

回答

1

使用ng-href需要時只包括URL。你爲什麼不使用ng-disabled?例如;

in HTML;

<a target="_blank" href="{{attachment.url}}" ng-disabled="condition" onclick="someFunction()" class="btn btn-link">{{attachment.name}}</a> 

in JS;

$scope.condition = false; 
    $scope.someFunction = function(){ 
     if(condition){ 
      open {{attachment.url}} 
     }else{ 
      $scope.condition = true; 
     } 
    } 
1

你說你要具備一定的條件禁用網址: