Wie wende ich eine AngularJS-Direktive an, die auf einer von ng-class festgelegten Klasse basiert?
Ich versuche, eine Direktive auf ein Element basierend auf seiner Klasse bedingt anzuwenden.
Hier ist ein einfacher Fall meines Problems:Sehen Sie die Ergebnisse in dieser Geige. In diesem Beispiel verwende ich die Zuordnung von Klassennamen zur Booleschen Form vonng-class
mittrue
; in meinem eigentlichen Fall möchte ich das boolesche Ergebnis einer Funktion verwenden.
Markup:
<div ng-app="example">
<div class="testcase">
This will have the directive applied as I expect
</div>
<div ng-class="{'testcase':true}">
This will not have the directive applied but I expect it to
</div>
</div>
JS:
angular.module('example', [])
.directive('testcase', function() {
return {
restrict: 'C',
link: function(scope, element, attrs) {
element.css('color', 'red');
}
}
}
);
Warum wird die Direktive nicht auf das angewendet?div
das bringt seine Klasse durchng-class
? Verstehe ich etwas in Bezug auf die Reihenfolge, in der AngularJS Anweisungen verarbeitet?
Wie soll ich eine Direktive bedingt auf ein Element anwenden, das auf der Bewertung eines Ausdrucks basiert?