Angularjs Kontrollkästchen ungerade Verhalten
-
21-12-2019 - |
Frage
Einige Freunde und ich arbeiten an einem Projekt. Dies ist das zweite Projekt, in dem ich mit Angularjs arbeite, wobei derzeit Version 1.2.3 verwendet wurde.
Trotzdem finde ich manchmal etwas von seinem Verhalten seltsam, und verstehe nicht, warum etwas passiert.
Die Situation ist also ... Ich habe in meiner CSHTML-Datei das Followig:
generasacodicetagpre.In meiner JavaScript-Datei habe ich den folgenden Code in einer Richtlinie:
am Anfang:
generasacodicetagpre.und ich habe folgendes:
generasacodicetagpre.Und wenn ich das Kontrollkästchen prüfe oder deaktiviere, bekomme ich immer true ... Der besondere Teil ist jedoch, dass sich der Inhalt innerhalb der generationspalaeticetagcode -Tags ändert .... Es ist also, als würde ich den Wert einer Variablen auf der HTML-Ebene ändern, aber nicht auf der JavaScript-Ebene ...
Warum passiert das?
Ich habe das Problem gelöst, indem ich $ parent.displayregardlessofsomething habe, aber ich verstehe nicht, warum das Problem behoben ist ... Was hat das Problem an erster Stelle verursacht?
Lösung
Ich habe versucht, was Sie in der Geige getan haben, und es funktioniert gut für mich.
http://jsfiddle.net/nicolasmoise/x9kyu/1/
. Die Tatsache, dass es für Sie funktioniert, wenn Sie $parent
verwendet haben, glauben Sie, dass ein übergeordneter Controller hier störrt ist.Vielleicht haben Sie zwei Variablen mit den gleichen Namen?
p.s.: Denken Sie daran, dass in JavaScript Primitive, die Primitive von Wert übergeben werden, und Objekte werden mit Bezug genommen.Dies ist die Ursache vieler Fehler für eckige Entwickler.Sehen Sie diese Geige, in der ich meinen Punkt illustriere.
mit primitiven: http://jsfiddle.net/nicolasmoise/x9kyu/
mit Objekten: http://jsfiddle.net/nicolasmoise/x9kyu/2/
Andere Tipps
Es sei denn, Sie sind mir ziemlich sicher, dass alles in demselben Bereich lebt, der fast nie nie ist, Sie sollten
siehe Dieser PLUNNER für Details für Live-Demo.