Tengo una observableArray en mi modelo de vista. Después de la creación de la vm deseo para reemplazar completamente los datos de la observableArray. Esto es lo que yo 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 yo estaba preocupado de si esto era incorrecto y podría conducir a pérdidas de memoria. ¿Alguien puede ajustarse si esta es la manera preferida para actualizar una ya existente observableArray suponiendo que usted desea reemplazar todos sus datos?

Me di cuenta de observableArray tiene un removeAll() método y se preguntó si los que se necesita para ser llamados a hacerlo limpiamente, o si estoy bien con lo que estoy haciendo?

InformationsquelleAutor C.J. | 2012-03-15

2 Comentarios

  1. 41

    La técnica que utiliza es el enfoque recomendado para sustituir completamente los datos en un observableArray. Un observableArray es en realidad sólo una normal observable con funciones extra añadido para la utilidad de la matriz de operaciones que actúan sobre el subyacente de la matriz y activar notificaciones.

    • Cuando usted dice que «el enfoque recomendado» mi entrenamiento de responder a las preguntas sobre skeptics.stackexchange.com de patadas en el. Tendría que suceder para tener la documentación de apoyo/enlaces para su declaración? [ con respeto, por supuesto, usted es el Señor Knockmeout a sí mismo (O; ]
  2. -6

    He encontrado que el enfoque recomendado no funciona en IE9 o inferior. En lugar de eso me había recrear el objeto,

    vm.roles = ko.observableArray(["1","2"])
    • Me pregunto si esto ha cambiado con las nuevas versiones de knock-out… ¿Qué versión se utiliza?
    • Si va a reemplazar la totalidad de su objeto, los observadores no ser notificado, ¿correcto?

Dejar respuesta

Please enter your comment!
Please enter your name here