javascript knockout.js knockout-2.0 ko.observablearray

javascript - Reemplazar todos los elementos en Knockout.js observableArray



knockout-2.0 ko.observablearray (2)

Descubrí que el enfoque recomendado no funciona en IE9 o inferior. En cambio, recreé el objeto,

vm.roles = ko.observableArray(["1","2"])

Tengo un observableArray en mi modelo de vista. Después de crear la vm, deseo reemplazar por completo los datos 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 estar funcionando bien, pero me preocupaba si esto era incorrecto y podría dar lugar a pérdidas de memoria. ¿Puede alguien ajustarse si esta es la forma preferida de actualizar un Array observableArray existente suponiendo que desea reemplazar todos sus datos?

Noté que observableArray tiene un método removeAll() y me pregunté si era necesario llamar para hacer esto limpiamente, o si estoy bien con lo que estoy haciendo.


La técnica que está utilizando es el enfoque recomendado para reemplazar por completo los datos en un observableArray . Un Array observableArray es en realidad un observable normal con funciones adicionales agregadas para operaciones de matriz útiles que actúan sobre el arreglo subyacente y desencadenan notificaciones.