2013-01-10 58 views
1

我加载数据与阿贾克斯,初始负载,我可以利用这observableArry绑定的所有数据:Knockout.js阵列添加更多的对象

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

现在的问题是,当我要加载更多的数组,我知道如何添加一个,但是如果下一个加载会超过1个对象,并且我想要绑定到数组,那么我该怎么做呢?

self.Applicants.push(mappedData);将无法工作。

有什么建议吗?

+0

发布后找到了一个方法:ko.utils.arrayPushAll(self.Applicants,mappedData); – Princa

回答

3

如果您需要将一堆对象添加到您的可观察数组中,我只需将整个数组设置为其当前内容,并与新对象进行连接。

下面应该工作:

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

是的,它也可以工作!谢谢! – Princa

1

我会用:

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

对于一般的提示&技巧与观察到的数组时,一定要检查出Ryan Niemeyer's article on it

+1

我*想*你必须手动告诉self.Applicants之后再通知其订阅者。 –

+0

你是..更新... –

+0

啊 - 不应该'调用'是'应用'?否则,你不只是推动整个数组到这个数组的末尾? –