2012-05-23 6 views
43

Estoy tratando de obtener una función para ejecutar cuando una casilla de verificación está marcada o no marcada para verificar que todas las casillas estén desmarcadas pero nunca se ejecute. Supongo que no lo estoy haciendo correctamente.knockout.js y escuchar para verificar el evento en la casilla de verificación

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

definitivamente no es suficiente información para cualquier persona para darte una buena respuesta sin solo adivinar. –

+0

No sé si es un error tipográfico, pero debería ser un enlace de datos no con un guión bajo. – kenny

+3

Debe haber sido suficiente información, obtuve mi respuesta. –

Respuesta

126

Se pueden añadir tanto un checked y click unión a una entrada. Sin embargo, desea return true; desde el controlador de clic. Esto permitirá que la acción predeterminada continúe (la casilla de verificación se marcará/desmarcará).

Este es un ejemplo: http://jsfiddle.net/rniemeyer/cnkVA/

Una técnica alternativa es presionar esta lógica en su modelo de vista y suscribirse a los cambios a un observable booleano y ejecutar su acción como: http://jsfiddle.net/rniemeyer/cnkVA/2/

+1

Gracias también no hice el contexto correcto, debería haber sido $ parents [1]. –

+10

¡Gracias por la sugerencia de "devolver la verdad desde el administrador de clics"! –

+1

2nd way (suscribirse a observable) funcionó mejor para mí. Gracias. – bob

Cuestiones relacionadas