2012-08-24 38 views
0

我有一个observableArray,我通过arrayFilter来返回一个过滤的集合。但我现在只做了1次观察。我怎么可以添加第二个观察到:超过1个可观测的敲除阵列过滤器

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

所以我也想根据我complaint对象的Code属性过滤:

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

我怎么能结合他们二?

回答

2

你尝试过:

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

谢谢..不,我没有想到的,由于某种原因..我笨! – CallumVass

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); 
    }); 

});