Knockout.js数组附加更多对象

时间:2013-01-10 21:15:53

标签: javascript knockout.js

我正在使用Ajax加载数据,对于初始加载,我可以将所有数据绑定到observableArry:

            success: function (result) {
                var mappedData = $.map(result.d, function (item) {
                    return new Applicant(item);
                });
                self.Applicants(mappedData);
            }

问题是当我想要向数组加载更多内容时,我知道如何添加一个,但是如果下一次加载将超过1个对象,并且我想绑定到数组,我该怎么做呢?

self.Applicants.push(mappedData);不行。

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

如果你需要在你的可观察数组中添加一堆对象,我只需将整个数组设置为当前内容,并与新对象结合。

以下内容应该有效:

self.Applicants(self.Applicants().concat(mappedData));

答案 1 :(得分:1)

我会用:

Array.prototype.push.apply(self.Applicants(), mappedData);
self.Applicants.valueHasMutated();

一般提示&使用可观察数组的技巧,请务必查看Ryan Niemeyer's article on it