我需要一些关于 Knockout JS 的帮助。
我有一个待办事项列表类型的网络应用程序,我需要根据需要更新整个可观察数组,其中包含从数据库中获取的数据的任务列表。
我在这里创建了一个示例小提琴:http: //jsfiddle.net/ingro/43XcU/26/
self.update = function(){
var values = [
{time: "17:00", title: "test#11"},
{time: "18:00", title: "work#22"},
{time: "19:00", title: "task#33"},
{time: "20:00", title: "sleep#14"}
];
self.clone = ko.observableArray(ko.utils.arrayMap( values , function( clone) {
return new Post(clone.time, clone.title);
}));
var count = 0;
ko.utils.arrayForEach(self.posts(), function(post) {
post.time(self.clone()[count].time());
post.title(self.clone()[count].title());
count++;
});
}
“值”中的数据模拟来自服务器的 JSON 响应。我使它工作的唯一方法是创建一个克隆可观察数组,然后循环遍历真实数组并使用新值一一更新其所有元素。由于许多原因,这不是最佳解决方案,例如如果两个数组中的元素数量不相等等等。
所以任何人都可以建议我一个更好的方法来更新它?
感谢并为我糟糕的英语感到抱歉:D