2012-05-23 14 views
43

Sto cercando di ottenere una funzione da eseguire quando una casella di controllo è selezionata o deselezionata per verificare che tutte le caselle di controllo siano deselezionate ma non viene mai eseguita. Presumo che non lo sto facendo correttamente.knockout.js e ascoltare controllare l'evento sulla casella di controllo

@Html.CheckBox("Subscription", new{ data_bind="disable: Disabled, checked: Checked, click: $parent.allSubscriptionsUnchecked"}) 
+0

Sicuramente non abbastanza informazioni per chiunque per darti una buona risposta senza solo indovinare. –

+0

Non so se è un errore di battitura, ma dovrebbe essere legato ai dati non con un carattere di sottolineatura. – kenny

+3

Deve essere stato abbastanza informazioni, ho avuto la mia risposta. –

risposta

126

È possibile aggiungere sia un checked e click vincolante ad un ingresso. Tuttavia, si consiglia di return true; dal gestore di clic. Ciò consentirà l'azione predefinita procedere (la casella di controllo sarà selezionata/deselezionata).

Ecco un esempio: http://jsfiddle.net/rniemeyer/cnkVA/

Una tecnica alternativa è quella di spingere questa logica nel vostro modello di vista e sottoscrivere le modifiche a un osservabile booleano ed eseguire l'azione come: http://jsfiddle.net/rniemeyer/cnkVA/2/

+1

Grazie anche al contesto non corretto, dovrebbe essere di $ genitori [1]. –

+10

Grazie per il suggerimento "return true from click handler"! –

+1

Secondo modo (iscriviti a osservabile) ha funzionato meglio per me. Grazie. – bob

Problemi correlati