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.
Dies liegt daran, dass Sie ng-model
nicht verwenden:
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%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
HTML-Beispiel:
%Vor%JS optional:
%Vor%Dies liegt daran, dass ng-change erfordert, dass ngModel vorhanden ist.
Hoffe, das hilft. Prost!
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: