In qualche modo, attraverso la magia di Angular, se si utilizza ng-model
e si fornisce un valore booleano, la casella di controllo verrà controllata se detto valore booleano è true e deselezionato se false.AngularJS: Reverse Checkbox State
<input type="checkbox" ng-model="video.hidden">
Anche se questo da solo è abbastanza sconcertante, in realtà sto cercando di invertire lo stato controllato, perché a differenza l'esempio todo dove todo.done
significa la casella viene selezionata, il mio modello è più simile todo.incomplete
.
Purtroppo la mia prima ipotesi non ha funzionato:
<input type="checkbox" ng-model="!video.hidden">
io sono in una posizione in cui il modello è stato dettato a me, quindi non posso cambiarla e non vogliono avere a massaggiarlo sul client (perché sto inviando oggetti client al server, poiché è in esecuzione in un ambiente attendibile).
Aggiornamento
Questo funziona in 1.3 e non ti dà le stringhe (1.2.xxx ti ha dato corde invece di booleani):
<input type="checkbox" ng-model="video.hidden" ng-true-value="false" ng-false-value="true">
o semplicemente usare una negazione di qualsiasi parola che hai usato per descrivere il tuo modello: video.shown:? oppure utilizzare una funzione nel controller per impostare il valore di un altro modello quando la casella di controllo è selezionata ... non è un problema reale secondo me. – mpm
@camus L'ultima cosa che ho detto è che non volevo cambiare il modello e non avrei dovuto. Certo, non è un problema reale, ma quando un framework sta sollecitando la facilità d'uso, non c'è motivo per cui la mia prima ipotesi sopra non dovrebbe funzionare. – Langdon
utilizzando una funzione non sta cambiando il modello ma aggiungendo una funzione a un controller. E nessun quadro è un proiettile d'argento. Ma questo è facilmente estensibile, è quello che dovrai fare comunque, scrivere direttive. – mpm