Wie kann ich auf eine Variable im Rahmen einer Richtlinie zugreifen?
Ich habe eine Direktive:
angular.module("app").directive("any", function() {
return {
restrict: "E",
scope: {
attr: "@"
},
controller: function($scope) {
$scope.attr = $scope.attr != undefined;
},
template: "Result (true/false): {{attr}}"
};
});
Und im HTML zum Beispiel:
<any attr="bla"></any>
Aber die Variable $scope.attr
Überreste bla
, ändert sich nicht mit dem Wert von wahr oder falsch. Wie kann ich?
Antworten:
2 für die Antwort № 1Verwenden Sie nicht die gleiche Variable, um den Vergleich mit undefiniert und dem tatsächlichen zu halten attr
Wert.
Jedes Mal, wenn angular seine Digest-Schleife ausführt, setzt es den neuen Wert von attr
im Rahmen.
-1 für die Antwort № 2
Wenn Sie ein erstellen Bereich isolieren AngularJS bietet in AngularJS drei Arten von Präfixen:
- "@" (Textbindung / Einwegbindung)
- "=" (Direkte Modellbindung / Zweiwege-Bindung)
- "&" (Verhaltensbindung / Methodenbindung)
Was Sie verwenden, ist die Einweg-Bindungsmethode. Damit Sie es in Ihrem HTML korrekt verwenden können, müssen Sie Folgendes tun:
<any attr="{{ bla }}"></any>