Wie wiederhole ich die Element ID in AngularJS?

8

Ich möchte etwas tun wie:

%Vor%

aber wenn ich im Controller bin, versuche ich:

%Vor%

getElementById gibt null zurück. Wie kann also die ID eines Elements mit AngularJS-Variablen festgelegt werden?

    
Noel Yap 05.12.2012, 07:21
quelle

1 Antwort

13

Die Funktion SetterForCatanCtrl wird nur einmal ausgeführt, wenn angular auf eine Anweisung ngController trifft, während sie Ihre App bootstrappt. Wenn dies geschieht, existiert das Element, auf das Sie vom DOM zugreifen möchten, noch nicht.

Wenn die DOM-Manipulation von einem Controller aus nicht empfohlen wird, können Direktiven die Art von Problemen lösen, vor denen Sie stehen. Ihr Anwendungsfall kann mit CSS gelöst werden und nur Klassen wechseln, aber ich denke, Sie möchten mehr als nur ein Hintergrundbild setzen.

DOM-Manipulation von einem Controller

Sie fragen nicht nach benutzerdefinierten Anweisungen, also könnte eine schnelle Lösung mit der ngClick-Anweisung erfolgen und eine Methode aufrufen, die Bilder wechseln kann

Beispiel HTML

%Vor%

und JS

%Vor%

Wenn Sie also auf eine Schaltfläche klicken, erhalten Sie eine ID und verwenden diese, um ein Element aus dem DOM zu erhalten. Aber lassen Sie mich wiederholen, eine Richtlinie für diesen Anwendungsfall ist eine bessere Wahl.

JSFiddle: Ссылка

pd: Wenn Sie jQuery laden, können Sie mit angular.element(<selector>) Elemente aus dem DOM auswählen.

edit: Hinzufügen eines Direktivenbeispiels

DOM-Manipulation von einer Direktive

Die Verwendung einer Anweisung ist einfacher, da Sie einfach ein Ereignis an das Element binden können, auf das die Anweisung angewendet wird

HTML

%Vor%

JS

%Vor%

Ссылка

    
jaime 05.12.2012, 08:04
quelle

Tags und Links