¿Por qué, cuando trato de usar knockout.js para enlazar texto usando $ index, obtengo el código de una función en lugar de un número?
<tbody data-bind="foreach: MyList">
<tr>
<td><span data-bind="text: $index + 1"></span></td>
</tr>
</tbody>
En lugar de obtener 1, 2, 3, etc., me sale esto:
se puede ver, el último carácter de la imagen de arriba, que mi índice de cero es se agrega a 1. Si elimino el '+ 1' de mi enlace, obtengo 0, 1, 2 en lugar de la función.
¿Cómo le digo a knockout que evalúe la expresión? Tengo el mismo problema cuando envío el formulario. Mis campos de cadena se envían como una función en lugar del valor.
Eso lo solucionó. ¿Por qué la documentación no tiene ejemplos con parens? http://knockoutjs.com/documentation/binding-context.html – rboarman
Es un problema general al usar observables en expresiones. Si está utilizando lo observable por sí mismo, los enlaces aceptarán lo observable solo, pero cuando empiece a incluir observables en expresiones, debe usar el formulario() para acceder al valor real. Ver http://knockoutjs.com/documentation/observables.html para 'Leer y escribir observables'. –
¡Gracias por la ayuda! – rboarman