2012-01-08 18 views
5

Necesito saber cómo activar la actualización de un observableArray cuando se cambia observable dentro del observableArray.KnockoutJS observable Arreglar para actualizar cuando se cambia el observable interno

Tengo un observableArray que representa un árbol binario. Estoy usando una función de mapeo de almacenamiento para obtener y establecer los valores en la matriz por lo que tiene que estar en equilibrio incluso si solo contiene un observable vacío. P.ej. (nodos) [9] quizá nula pero cuando ese nodo se actualiza yo llamaría nodes()[9](set new value) y la necesidad de activar el observableArray para actualizar

Respuesta

4

Terminado usando .replace() en el array observable

3

Gestionado mirar a través del código y encontrar observableArray.replace()

RELACIONADO: How to replace a given index element in knockoutjs

+1

reemplazar es ideal aquí. Otra opción es utilizar el empalme para sacar el elemento y luego empujar el artículo de reemplazo. Pero, de nuevo, reemplazar es una mejor opción. –

+0

Sí, pero si utilicé el empalme, ¿cómo lo volvería a insertar en la posición correcta? – Ryan

+1

empalme puede agregar, eliminar o agregar y eliminar elementos de posiciones arbitrarias. ver https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/splice. por ejemplo 'array.splice (3, 1, 'hello')' implementa "replace" en javascript puro. KO le brinda métodos de conveniencia adicionales en Arrastres observables. otro ejemplo que solo agrega elementos ad a una posición dada es 'array.splice (3, 0, 'hello', 'world')'. – saurus

Cuestiones relacionadas