replaceKnockout.js中的所有元素observableArray

我在我的视图模型中有一个observableArray 。 在创buildVM后,我希望完全replaceobservableArray的数据。 以下是我如何做到这一点:

 //Initial Setup var vm = {}; vm.roles = ko.observableArray([]); ko.applyBindings(vm); //....replace array later on.... vm.roles(["1", "2"]); 

这似乎工作正常,但我担心,如果这是不正确的,可能会导致内存泄漏。 任何人都可以符合,如果这是更新现有的observableArray首选的方式假设你想要更换所有的数据?

我注意到observableArray有一个removeAll()方法,并想知道是否需要调用干净地做这个,或者如果我很好,我在做什么?

您正在使用的技术是完全replaceobservableArray的数据的推荐方法。 一个observableArray实际上只是一个普通的observable ,为有用的数组操作添加了额外的函数,这些操作作用于底层数组并触发通知。

我发现推荐的方法在IE9或更低版本中不起作用。 相反,我重新创build了这个对象,

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