gpt4 book ai didi

knockout.js - 为什么我不能在 knockout 中将数据连接到可观察数组

转载 作者:行者123 更新时间:2023-12-04 13:32:21 27 4
gpt4 key购买 nike

我正在尝试将服务器中的元素添加到 knockout 中的可观察数组。

这是我的 View 模型:

function ArticlesViewModel() {
var self = this;
this.listOfReports = ko.observableArray([]);

self.loadReports = function() {
$.get('/router.php', {type: 'getReports'}, function(data){
for (var i = 0, len = data.length; i < len; i++){
self.listOfReports.push(data[i]);
}
}, 'json');
};

self.loadReports();
};

而且效果很好。但我知道我可以使用 concat() 在 javascript 中合并两个数组。据我所知 concat works in knockout .因此,当我尝试用 self.listOfReports().concat(data); 替换我的 for 循环时或 self.listOfReports.concat(data); ,屏幕上什么也没有出现。

在第一种情况下没有错误,在第二种情况下错误告诉我没有方法 concat。

那么如何在没有循环的情况下连接数据。我会很高兴听到为什么我的方法不起作用

最佳答案

observableArray 支持concat方法。请参阅官方支持的文档 array manipulation methods .

但是您可以调用concat在底层数组上,然后将新的串联数组重新分配给您的 observable:

self.listOfReports(self.listOfReports().concat(data));

linked example有效,因为 self.Products().concat(self.Products2())循环使用。如果你只写 self.listOfReports().concat(data);它仍然连接,但是您只是丢弃了结果并且不将其存储在任何地方,这就是您需要将其存储回 observableArray 的原因。

关于knockout.js - 为什么我不能在 knockout 中将数据连接到可观察数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21930955/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com