我对我的模型有所了解:
self.filteredItems = ko.computed(function () {
var filter = this.filter().toLowerCase();
if (!filter) {
return this.sites();
} else {
return ko.utils.arrayFilter(this.sites(), function (item) {
return ko.utils.stringStartsWith(item.Name().toLowerCase(), filter);
});
}
}, self);
我用它来搜索我的页面而不是stringStartsWith我想要某种类型的.contains,所以我得到的结果是我的searchterm包含在字符串中的任何地方而不是刚开始。
我认为这必须是一个非常常见的请求,但找不到任何明显的东西。
有什么建议吗?
答案 0 :(得分:14)
您只需使用string.indexOf
method检查“字符串包含”:
self.filteredItems = ko.computed(function () {
var filter = this.filter().toLowerCase();
if (!filter) {
return this.sites();
} else {
return ko.utils.arrayFilter(this.sites(), function (item) {
return item.Name().toLowerCase().indexOf(filter) !== -1;
});
}
}, self);