2011-11-18 26 views
6

Tengo un problema al enlazar una lista de valores complejos (id/ descripción) a una lista de casillas de verificación.Usando el enlace marcado en knockout con una lista de casillas de verificación, marca todas las casillas de verificación

El problema es que no necesito solo la identificación o la descripción, sino ambas.

Cuando enlace usando el enlace controlado, todas las casillas de verificación en mi lista se verifican cuando hago clic en un elemento.

Esto es parte de algo más grande, y la razón por la que el objeto y no quiero simplemente la identificación es que el tipo complejo a su vez tendrá una lista que quiero enlazar con otra lista de casillas de verificación.

Aquí es un violín que produce el problema: http://jsfiddle.net/M8KFd/1

agradecido por su ayuda.

Respuesta

10

puedo realizar el seguimiento del estado de cada artículo individualmente, a continuación, obtener los elementos seleccionados utilizando un dependent observable algo así como this

+0

Awesomeness! Mi lista es datos serializados desde el servidor, pero terminé bucleando la matriz inicial, abofeteando en la propiedad seleccionada: http://jsfiddle.net/M8KFd/2/ Por cierto, deberías considerar usar 'ko.utils.arrayFilter' en lugar de '$ .grep' para evitar mezclar dependencias en el código. Gracias! –

0

Una solución más simple, es falsa la casilla de verificación con CSS, luego con nocaut simplemente llamar a un método que pasará todo el elemento al modelo de vista:

<li data-bind="click: $parent.setCompany"> 
     <span data-bind="text: CompanyName"></span>, 
     <span data-bind="text: RegAddress_PostTown"></span> 
    </li> 

por supuesto, esto no funciona para todos los escenarios como por la respuesta de Richard Friend.

Cuestiones relacionadas