ng-checked und ng-change dot arbeiten nicht zusammen - angularjs

8

Zypern

js

%Vor%

und html     

%Vor%

Hinweis Die "2 Mile" -Funkeingabe wird anhand der Radienumfangsstruktur überprüft. Warum löst der ng-change die Funktion nicht aus?

Wenn ich ng-model hinzufüge, löst die Funktion aus, aber das ng-checked funktioniert nicht.

    
webmandman 23.08.2014, 00:17
quelle

4 Antworten

7

Dies liegt daran, dass Sie ng-model nicht verwenden:

GETROCKNETER PLUNKER

%Vor%

UPDATE:

Es tut mir leid, dass ich nicht bemerkt habe, dass Sie eine Standard-Optionsschaltfläche aktivieren möchten. Wenn dies der Fall ist, ist die Vorgehensweise, die Sie wählen, falsch. Sie müssen das Modell als nicht-individuelle Teile in einer Gruppe von Optionsfeldern betrachten, aber insgesamt sollten sie einen Wert haben. Sie müssen nicht die Radio Scope-Variable ng-repeat verwenden, sondern stattdessen ein anderes ng-model als selectedRadius -Modell. Ihr Eingabe-Radio muss einen Wert haben, und in diesem Fall verwenden wir ng-value , um den aktuellen Wert des Modells zu bestimmen.

AKTUALISIERTER PLUNKER September 2014

JAVASCRIPT

Controller

%Vor%

HTML

%Vor%

UPDATED PLUNKER [ Januar 2015 ]

Das Problem von

dcz.switcher unten deutet darauf hin, dass die obige Lösung den Ereignishandler ng-change nicht auslöst, wenn ein Optionsfeld erneut ausgewählt wird. Das Hauptproblem bestand darin, dass sich die ng-model auf den Umfang von ng-repeat bezog und nicht auf den Umfang des Controllers von der zweiten Änderung. Um dieses Problem zu lösen, können Sie die Eigenschaft $parent verwenden. Eine Alternative wäre, controllerAs alias zu verwenden und den Alias ​​selbst zu verwenden, um auf die Eigenschaft Ihres Controllers zuzugreifen. Um mehr über Scopes in AngularJS zu verstehen, schlage ich vor, hier mehr darüber zu lesen .

HTML

%Vor%     
ryeballar 23.08.2014, 02:29
quelle
5

Verwenden Sie die Standardwerte und alles funktioniert wie ein Zauber, es ist nicht nötig, den Bereich zu überwachen ... und Ja, Sie brauchen ng-model

  • ng-model - funktioniert alles
  • ng-checked - stellt sicher, dass das Attribut CHECKED vorhanden ist
  • ng-change - löst Ihre Funktion on-Change
  • aus

HTML-Beispiel:

%Vor%

JS optional:

%Vor%     
Playnox 23.04.2015 16:37
quelle
1

Dies liegt daran, dass ng-change erfordert, dass ngModel vorhanden ist.

Hoffe, das hilft. Prost!

    
jleljedal 23.08.2014 02:36
quelle
1

Leider funktioniert die Rogeballar-Lösung nicht wirklich:

im Link "Aktualisiert", wähle 3 und wähle dann erneut 2

Das Änderungsereignis wird nicht ausgelöst:

    
dcz.switcher 08.09.2014 15:56
quelle

Tags und Links