繁体   English   中英

替换Knockout.js observableArray中的所有元素

[英]Replace all elements in Knockout.js observableArray

我的视图模型中有一个observableArray 在创建vm之后,我希望完全替换observableArray的数据。 我是这样做的:

//Initial Setup
var vm = {};
vm.roles = ko.observableArray([]);
ko.applyBindings(vm); 


//....replace array later on....
vm.roles(["1", "2"]);

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

我注意到observableArray确实有一个removeAll()方法,并想知道是否需要调用它来干净利落地完成这项工作,或者我是否对我正在做的事情很好?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM