Reemplace todos los elementos en Knockout.js observableArray
-
16-12-2019 - |
Pregunta
Yo tengo un observableArray
en mi opinión modelo.Después de crear la máquina virtual, deseo reemplazar completamente los datos del observableArray
.Así es como lo estoy haciendo:
//Initial Setup
var vm = {};
vm.roles = ko.observableArray([]);
ko.applyBindings(vm);
//....replace array later on....
vm.roles(["1", "2"]);
Esto parece funcionar bien, pero me preocupaba si era incorrecto y podría provocar pérdidas de memoria.¿Alguien puede conformarse si esta es la forma preferida de actualizar un archivo existente? observableArray
¿Suponiendo que desea reemplazar todos sus datos?
Me di cuenta de observableArray
tiene un removeAll()
método y me pregunté si era necesario llamarlo para hacer esto limpiamente, o si estoy bien con lo que estoy haciendo.
Solución
La técnica que está utilizando es el enfoque recomendado para reemplazar completamente los datos en un observableArray
.Un observableArray
en realidad es algo normal observable
con funciones adicionales agregadas para operaciones útiles de matriz que actúan sobre la matriz subyacente y activan notificaciones.
Otros consejos
Descubrí que el enfoque recomendado no funciona en IE9 o versiones anteriores.En lugar de eso, recreé el objeto,
vm.roles = ko.observableArray(["1","2"])