我在Knockout.js中有一个可观察的数组,在其中存储了人员列表。该数组的结构如下所示:
Array
|--- Person 1
|--- ID
|--- Name
|--- ...
|--- Person 2
|--- ID
|--- Name
|--- ...
|--- ...
我有一个搜索栏,应该将其值与一个人的任何字段进行比较。因此,如果我输入“ 000”并且是Person 1的ID,那么它应该很受欢迎。如果输入的是Person 2的名称,则输入“ Person”,则相同。
目前,我的代码如下所示:
self.searchValue = ko.observable();
self.throttledValue = ko.computed(self.searchValue).extend({ throttle: 500 });
//Search by value
self.throttledValue.subscribe(function (val) {
if (val !== ''){
for (var i = 0; i < self.persons().length; i++) {
var name = self.persons()[i].fullName;
var id = self.persons()[i].ID;
//Further search logic here
}
}
}, self);
我希望能够将一个人的字段与搜索字符串进行比较,如下所示:
//This code should replace the "further search logic"
if(name.toLowerCase().contains(val.toLowerCase()){
//It's a hit!
}
但是很明显,既未识别也toLowerCase()
未contains()
识别,导致在尝试加载页面时出现错误。
谁能在正确的方向上帮助我?
提前致谢!
toLowerCase()
是一种string
方法,例如,它不适用于数字。
尝试一下 toString()
if(name.toString().toLowerCase().contains(val.toString().toLowerCase()){
//It's a hit!
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句