2016-04-24 13 views
0

Wie kann ich manipulieren (spezifische Anweisung) innerhalb einer ng wiederholen?Direktive in ng wiederholen

Beispiel:

Ich habe meine Richtlinie

<actionbar> 
    <action_button ng-repeat="actionButton in actionsButtons"></action_button> 
</actionbar> 

Wo und sind diferents Richtlinie, die ActionBar viele Aktionstasten oder einfach nur einen hat.

Ich brauche spezifische Anweisung und manipulieren Werte von dort. Wie: Stellen wir uns vor, ich hätte ein Array, das zwei Aktionsschaltflächen generiert. Ich mache eine ng-Wiederholung und kompiliere nach HTML. Jetzt brauche ich, wenn ich in die erste Aktionstaste klicke Wenn die zweite aktiv ist, deaktiviere die zweite und die gleiche Reaktion für die erste Taste.

Wie kann ich manipulieren und spezifische Anweisung innerhalb ng-Wiederholung erhalten?

+0

Ihre Frage ist sehr unklar, aber was Sie scheinen zu fragen, ist genau, was Direktiven verbieten sollen. Sie denken wahrscheinlich über die Direktiven falsch nach, wenn Sie versuchen, ihre HTML-Ausgabe zu ändern. Stattdessen sollten Sie Eigenschaften im Controller der Anweisung festlegen und auf die Wertänderungen reagieren. Lassen Sie die 'action_button' sich selbst deaktivieren, nicht etwas anderes deaktivieren Sie sie. – Claies

+0

Ja, ich weiß. Aber ich brauche eine Liste von Aktionsschaltflächen und dies, wenn ich auf eines der anderen klicke. Aber das ist für mich unklar (wie kann ich tun, wenn ich in eine action_button deactive die andere), weil ich nur einen Controller (ActionbuttonController) habe. Also muss ich bestimmte Anweisungen bekommen und aktiv oder deaktiviert werden. –

Antwort

1

Wenn Sie versuchen, zwischen den verschiedenen Direktiven in der ng-repeat zu kommunizieren, können Sie eine Factory erstellen (Fabriken und Services werden nur einmal instanziiert), die für alle Direktiven freigegeben wird. Innerhalb dieser Anweisung können Sie die zu verwendenden Informationen angeben. Wenn Sie zum Beispiel 10 Elemente innerhalb der ng-Wiederholung haben und nur eine gleichzeitig aktiv sein kann, können Sie innerhalb der Factory einen Getter und Setter erstellen, der die ID oder den Wert des aktiven Elements abruft/setzt. Und in den Direktiven muss man nur diese Funktion aufrufen.

+0

Aber das wird sie alle betreffen. Weil ich nicht weiß, wie man in bestimmten Directive-Elementen einstellt, weil sie nur ein Array sind, habe ich keinen Index oder etwas ähnliches. –

+0

Aber Sie können eine Funktion namens getIndex innerhalb der Fabrik erstellen, die den Wert des Index + 1 zurückgibt. In der Direktive werden Sie die Eigenschaft festlegen, so dass Sie für jeden einen anderen Index haben. –

+0

Ich bin mir nicht sicher, ob ich das wirklich verstehe. Können Sie mir ein einfaches Beispiel geben? –

Verwandte Themen