2016-12-20 3 views
0

Ich versuche, eine Direktive einer Schaltfläche zu erstellen, mit dem ng-disabled Attribut Ich versuche, den Status ng-disabled an eine Variable in meinem Bereich zu binden. Hierng-deaktiviert funktioniert nicht auf Direktive

ist die HTML:

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

Und hier ist die 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); 
     } 
    }; 
}); 

Das Seltsame ist, - ich in der Konsole zu sehen, dass der Wert von $scope.disableBtntut Änderung, noch Die Schaltfläche deaktiviert Status nicht.

Danke!

+0

Ich verstehe nicht, warum versuchen Sie, eine neue Richtlinie zu erstellen? Warum benutzt du nicht die ng-disable von angular? –

+0

überprüfen Sie Ihre Großschreibung. Eckige Änderungen 'camelCase' werden wie folgt dargestellt:' camel-case' – deltree

Antwort

0

ng-disabled erwartet einen Ausdruck, aber weil Sie "dis" als Literalwert (mit '@') binden, wird es nicht korrekt ausgewertet. Sie sollten

scope: { 
    dis: "=" 
}, 

verwenden, um den booleschen Wert ordnungsgemäß zu binden.

Verwandte Themen