2016-12-20 3 views
0

ng-disabled属性を使用して、ボタンのディレクティブを作成しようとしています 範囲内の変数にng-disabledステータスをバインドしようとしています。 JSディレクティブでng-disabledが機能していません

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

そしてここにある: - 私はまだ、$scope.disableBtnの値が変更を行い、コンソールに表示

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); 
     } 
    }; 
}); 

奇妙なことがある。ここ

はHTMLですボタンが無効の状態にはなりません。

ありがとうございます!

+0

なぜ新しいディレクティブを作成しようとしていませんか?なぜあなたは角度からのng-disableを使用しないのですか? –

+0

大文字を確認してください。角の変化は 'camel-case'のようにハイフネーションされます:' camel-case' – deltree

答えて

0

ng-disabledは式を必要としますが、 "dis"をリテラル値( '@'を使用)としてバインドするため、正しく評価されません。ブール値を正しくバインドするには、

scope: { 
    dis: "=" 
}, 

を使用する必要があります。

関連する問題