Jakoś, dzięki magii Angular, jeśli użyjesz ng-model
i zapewnisz mu wartość boolowską, pole wyboru zostanie sprawdzone, jeśli wspomniana wartość logiczna jest prawdziwa, i odznaczona, jeśli jest fałszywa.AngularJS: Reverse checkbox State
<input type="checkbox" ng-model="video.hidden">
Choć sam jest dość kłopotliwe, ja rzeczywiście próbuje odwrócić sprawdzenie stanu, ponieważ w przeciwieństwie do np todo gdzie todo.done
oznacza pole zostanie zaznaczone, mój model jest bardziej jak todo.incomplete
.
Niestety moje pierwsze przypuszczenie nie działa:
<input type="checkbox" ng-model="!video.hidden">
jestem w sytuacji, w której model został dyktowane do mnie, więc nie można go zmienić i nie chcą mieć do masuj go na kliencie (ponieważ wysyłam obiekty klienta z powrotem na serwer, ponieważ działa on w zaufanym środowisku).
Aktualizacja
To działa w 1.3 i nie daje ciągi (1.2.xxx dał ci struny zamiast logicznych):
<input type="checkbox" ng-model="video.hidden" ng-true-value="false" ng-false-value="true">
lub po prostu użyć negację jakiegokolwiek słowem używanym do opisania modelu video.shown? lub użyj funkcji w kontrolerze, aby ustawić wartość innego modelu, gdy pole wyboru jest zaznaczone ... to nie jest prawdziwy problem w mojej opinii. – mpm
@camus Ostatnią rzeczą, którą powiedziałem, było to, że nie chciałem zmienić modelu i nie powinienem był tego robić. Oczywiście nie jest to prawdziwy problem, ale kiedy ramy są zachwalające łatwość użycia, nie ma powodu, dla którego moje pierwsze przypuszczenie powyżej nie powinno działać. – Langdon
użycie funkcji nie powoduje zmiany modelu, ale dodanie funkcji do kontrolera. Żadna struktura nie jest srebrną kulą. Ale ta jest łatwa do rozłożenia, to i tak musisz zrobić, pisz dyrektywy. – mpm