超过1个Observable的Knockout Array Filter

时间:2012-08-24 11:04:38

标签: knockout.js

我有一个observableArray,我通过arrayFilter返回一个过滤集。但是我现在只为1个观察者做这件事。如何添加第二个可观察量:

return ko.utils.arrayFilter(self.complaints(), function (complaint) {
    return complaint.RaisedBy == self.currentUser();
});

所以我也希望根据Code对象的complaint属性进行过滤:

return ko.utils.arrayFilter(self.complaints(), function (complaint) {
    return complaint.Code == self.currentCode();
});

我如何将它们合并两个?

2 个答案:

答案 0 :(得分:2)

你试过了吗?

return ko.utils.arrayFilter(self.complaints(), function (complaint) {
    return complaint.Code == self.currentCode() && complaint.RaisedBy == self.currentUser();
});

答案 1 :(得分:0)

这样的事情应该有效:

self.myDependantObservable = ko.computed(function(){
   var currentUser = self.currentUser();
   var currentCode = self.currentCode();

   return result = ko.utils.arrayFilter(self.complaints(), function (complaint) {
     return (complaint.RaisedBy == currentUser && complaint.Code == currentCode);
   });

});