ng-disabled不使用指令

时间:2016-12-20 14:58:06

标签: javascript html angularjs

我正在尝试使用ng-disabled属性创建按钮的指令 我正在尝试将ng-disabled状态绑定到我的范围内的变量。

这是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 的值更改了,但按钮禁用状态却没有。

谢谢!

1 个答案:

答案 0 :(得分:0)

ng-disabled需要一个表达式,但由于您将“dis”绑定为文字值(使用“@”),因此无法正确计算。你应该使用

scope: {
  dis: "="
},

正确绑定布尔值。