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

C.J*_*.J. 44 javascript ko.observablearray knockout-2.0 knockout.js

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

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


//....replace array later on....
vm.roles(["1", "2"]);
Run Code Online (Sandbox Code Playgroud)

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

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

RP *_*yer 41

您正在使用的技术是完全替换数据的推荐方法observableArray.一个observableArray实际上只是一个正常的observable有添加了对底层阵列和触发通知行事有用数组操作额外的功能.

  • 当您说"推荐的方法"时,我在http://skeptics.stackexchange.com/上回答问题时的培训就会开始.您是否恰好有声明的支持文档/链接?[当然,尊重; 你是Knockmeout先生自己(O;] (3认同)