Irgendwie, durch die Magie von Angular, wenn Sie ng-model
verwenden und es einen booleschen Wert zur Verfügung stellen, wird Ihr Kontrollkästchen überprüft, ob der Boolesche Wert wahr ist, und deaktiviert, wenn falsch.AngularJS: Reverse Checkbox Status
<input type="checkbox" ng-model="video.hidden">
Während dies allein ziemlich verwirrend ist, ich versuche tatsächlich den geprüfte Zustand rückgängig zu machen, denn im Gegensatz zu dem todo Beispiel, wo todo.done
die Box bedeutet, wird überprüft, ist mein Modell mehr wie todo.incomplete
.
Leider meine erste Vermutung hat nicht funktioniert:
<input type="checkbox" ng-model="!video.hidden">
ich in der Lage bin, wo das Modell mir diktiert wurde, so kann ich es nicht haben, ändern und will nicht massage es auf dem Client (weil ich Client-Objekte zurück zum Server sende, da es in einer vertrauenswürdigen Umgebung läuft).
aktualisieren
Dies funktioniert in 1.3 und nicht geben Sie Strings (1.2.xxx gab dir Saiten statt booleans):
<input type="checkbox" ng-model="video.hidden" ng-true-value="false" ng-false-value="true">
oder einfach nur eine Negation jeglicher Wort verwenden Sie Ihr Modell beschreiben zu: video.shown:? oder verwenden Sie eine Funktion in Ihrem Controller, um den Wert eines anderen Modells zu setzen, wenn das Kontrollkästchen aktiviert ist ... es ist meiner Meinung nach kein echtes Problem. – mpm
@camus Das letzte, was ich sagte, war, dass ich das Modell nicht ändern wollte, und das sollte ich nicht tun müssen. Natürlich ist es kein wirkliches Problem, aber wenn ein Framework einfach zu bedienen ist, gibt es keinen Grund, warum meine erste Vermutung nicht funktionieren sollte. – Langdon
Die Verwendung einer Funktion ändert nicht das Modell, sondern fügt eine Funktion zu einem Controller hinzu. Und kein Rahmen ist eine Wunderwaffe. Aber dieses ist leicht ausdehnbar, das musst du sowieso machen, Direktiven schreiben. – mpm