Perché, quando provo a usare knockout.js per legare del testo usando $ index, ottengo il codice di una funzione invece di un numero?
<tbody data-bind="foreach: MyList">
<tr>
<td><span data-bind="text: $index + 1"></span></td>
</tr>
</tbody>
Invece di ottenere 1, 2, 3, ecc, ottengo questo:
si può vedere, per l'ultimo carattere nell'immagine sopra, che il mio indice di zero è aggiunta a 1. Se rimuovo il '+ 1' dal mio binding, ottengo 0, 1, 2 invece della funzione.
Come si dice a knockout per valutare l'espressione? Ho lo stesso problema quando invio il modulo. I miei campi di stringa vengono inviati come funzione al posto del valore.
Che risolto. Perché la documentazione non ha esempi con parens? http://knockoutjs.com/documentation/binding-context.html – rboarman
È un problema generale quando si utilizzano osservabili nelle espressioni. Se stai usando l'osservabile da solo, i binding accetteranno l'osservabile da solo, ma quando inizi ad includere gli osservabili nelle espressioni devi usare il modulo() per accedere al valore reale. Vedi http://knockoutjs.com/documentation/observables.html per "Leggere e scrivere osservabili". –
Grazie per l'aiuto! – rboarman