尝试过滤具有多个条件的计算。我见过很多例子,return 语句嵌套了多个条件,但我真的不明白它们为什么起作用。我在这里的示例可能不是嵌套返回语句的候选者,但我不确定如何执行它。
//ko.utils.arrayFilter - filter the items using the filter text
viewModel.filteredItems = ko.computed(function() {
var filter = this.filter().toLowerCase();
if (!filter) {
return this.items();
} else {
return ko.utils.arrayFilter(this.items(), function(item) {
return (item.fullName().toLowerCase().indexOf(filter) > -1);
});
}
//*** THIS LOGIC WORKS BY ITSELF BUT NOT COMBINED WITH THE ABOVE LOGIC ***
//var t = this.selectedTag();
//if (t == "all") return this.items();
//return ko.utils.arrayFilter(this.items(), function(item) {
// return item.tag == t;
//});
}, viewModel);
这是小提琴中的完整示例:http: //jsfiddle.net/boyus/qTb5Q/12/
提前致谢。