淘汰赛实时搜索

时间:2016-11-02 21:57:51

标签: javascript knockout.js

我试图制作一个基于标题过滤掉位置的搜索功能。但我似乎无法弄清楚如何获得位置数组中的标题。我已经尝试过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()); 

这是我的小提琴https://jsfiddle.net/0qy8qmgm/

1 个答案:

答案 0 :(得分:0)

你很近,请查看这个更新的小提琴 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; });