2016-12-20 28 views
0

我想創建一個按鈕的指令,具有ng-disabled屬性 我試圖將ng禁用狀態綁定到我的作用域上的變量。ng禁用不能在指令上工作

下面是HTML:

<div ng-controller="MyCtrl"> 
    <btn dis="disableBtn"></btn> 
</div> 

這裏是JS:

angular.module('myApp') 
    .directive('btn', function() { 
     return { 
     restrict: 'E', 
     scope: { 
      dis: "@" 
     }, 
     template: '<button ng-disabled="dis">click</button>', 
     link: function($scope) { 
      setInterval(function() { 
       console.warn($scope.disableBtn); 
       $scope.disableBtn = !$scope.disableBtn; 
      }, 100); 
     } 
    }; 
}); 

奇怪的是 - 我在那的$scope.disableBtn價值確實變化控制檯中看到的,但按鈕禁用狀態不會。

謝謝!

+0

我不明白你爲什麼要創建一個新的指令?爲什麼不使用角度的ng-disable? –

+0

檢查您的大小寫。角度更改'camelCase'像這樣連接:'camel-case' – deltree

回答

0

ng-disabled需要一個表達式,但由於您將「dis」作爲文字值綁定(使用'@'),因此無法正確評估。您應該使用

scope: { 
    dis: "=" 
}, 

正確綁定布爾值。