2016-08-02 63 views
2

我有下面的代碼:AngularJS NG-禁用關閉所有元素

<body ng-app="vote"> 
    <div> 
     <div class="vote"> 
      <button ng-disabled="this.isDisabled" voteplus>+</button> 
     </div> 
     <div class="vote"> 
      <button ng-disabled="isDisabled" voteplus>+</button> 
     </div> 
     <div class="vote"> 
      <button ng-disabled="isDisabled" voteplus>+</button> 
     </div> 
     <div class="vote"> 
      <button ng-disabled="isDisabled" voteplus>+</button> 
     </div> 
     <div class="vote"> 
      <button ng-disabled="isDisabled" voteplus>+</button> 
     </div> 
    </div> 
</body> 

和指令:

angular.module('vote', []) 

.directive('voteplus', function() { 
    return { 
     link: function(scope, element, attrs) { 
      element.bind('click', function(e){ 
       scope.isDisabled = true; 
       scope.$apply(); 
      }); 
     } 
    } 
}); 

它的作品,但它禁止網頁上的所有元素,我只需要電流。我應該改進什麼?

回答

5

您需要爲指導創建新的範圍:

.directive('voteplus', function() { 
    return { 
     scope: true, // <-- add this 
     link: function(scope, element, attrs) { 
      element.bind('click', function(e){ 
       scope.isDisabled = true; 
       scope.$apply(); 
      }); 
     } 
    } 
}); 

隨着scope: true你告訴指令來創建一個新的子範圍(從基地之一prototypically繼承)。在這種情況下scope.isDisabled = true只會改變本地子標誌。

+0

非常感謝! – Dan