2012-08-13 22 views
7

Bitte unter der Richtlinie finden, die ich schrieb,AngularJS Richtlinie nicht funktioniert

angular.module('netVogue.directives', []). 
    directive('set-First-Active', function() { 
     return function(scope, element, attrs){ 
      alert('sample'); 
      element.addClass("active");  
     }; 
    }); 

ich diese Richtlinie zu meinem Modul in folgenden Art und Weise hinzugefügt haben,

angular.module('netVogue', ['netVogue.filters', 'netVogue.services', 'netVogue.directives']); 

benutzte ich diese Anweisung in meiner Vorlage im folgenden Format,

Allerdings sehe ich weder eine Antwort von Alert noch Klasse bekommt hinzugefügt. Kann mir bitte jemand dabei helfen? Aufgrund einiger Abhängigkeiten möchte ich nicht 'ng-class' verwenden, sondern class = 'active' für das erste Element von ng-repeat hinzufügen.

Jede Hilfe würde sehr geschätzt werden. Danke im Voraus.

Antwort

34

Bei der Deklaration der Direktive sollte camel case name (setFirstActive) sein.

Siehe developer guide on directives.

Direktiven haben Namen wie "ngBind". Die Anweisung kann aufgerufen werden, indem der Name des Kamelfalls in einen Schlangenfall mit den folgenden Sonderzeichen übersetzt wird:, - oder _. Optional kann der Direktive x- oder data vorangestellt werden, um sie HTML-validator-konform zu machen. Hier ist eine Liste einiger möglicher Direktiven-Namen: ng: bind, ng-bind, ng_bind, x-ng-bind und data-ng-bind.

+0

Danke für die Antwort Artem. Nur noch eine Abfrage, ist nicht gesetzt-First-Active Name möglich? Wir haben bereits mögliche Anweisungsnamen wie ng-bind, x-ng-bind, die set-First-Active ähnlich sind. –

+1

@Abdul Wenn Sie eine Direktive deklarieren, erhält sie den Namen 'setFirstActive'. Wenn Sie die Anweisung aufrufen, können Sie 'set-first-active', 'set_first_active', 'data-first-active', 'x-first-active' verwenden. –

+0

Habe es jetzt. Danke, dass du es noch einmal erklärt hast. –