我正在尝试创建一个搜索功能,根据标题过滤掉位置。但我似乎无法弄清楚如何获取位置数组中的标题。我尝试过 location.title,但结果显示为未定义。
var locationArray = [
{title:'State House', location:{lat: 41.763711, lng:-72.685093} },
{title:'Hartford School', location:{lat: 41.755042, lng:-72.665532} },
{title:'BurgerKing', location:{lat: 41.757419, lng:-72.664175} },
{title:'Subway', location:{lat: 41.767228, lng:-72.676470} },
{title:'Quiznos', location:{lat: 41.764117, lng:-72.671873} }
];
var ViewModel = function() {
var self = this;
self.filter = ko.observable('');
self.items = ko.observableArray(locationArray);
console.log(locationArray);
self.filteredItems = ko.computed(function() {
var filter = self.filter();
if (!filter) { return self.items(); }
return self.items().filter(function(i) { return i.indexOf(filter) > -1; });
});
};
ko.applyBindings(new ViewModel());
这是我的 js fiddle https://jsfiddle.net/0qy8qmgm/
最佳答案
你已经接近了,请检查这个更新的 fiddle https://jsfiddle.net/0qy8qmgm/1/
我只改变
return self.items().filter(function(i) { return i.indexOf(filter) > -1; });
为此
return self.items().filter(function(i) { return i.title.indexOf(filter) > -1; });
关于javascript - 实时搜索 knockout ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40390512/