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?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage