javascript - 实时搜索 knockout

标签 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()); 

这是我的 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/

相关文章:

javascript - 在 Knockout 中调用 ajax 后 ViewModel 未更新

javascript - 单击按钮时调用 knockout 验证扩展器

javascript - 确定您的网页已激活(包括切换浏览器选项卡)的最佳方法是什么?

javascript - 是否有在线 JSON 查看器/格式化程序可以显示属性的路径?

javascript - 基于单选/复选框状态的 Jquery 过滤

javascript - 如何从jquery中的表数据中获取span id

javascript - 为什么在 ES6 中使用 Promise 时,我的事件监听器在发生一个事件后不会持续?

javascript - Knockout在另一个页面中加载当前 View 模型和html

javascript - 访问 ko.compulated 内部的本地函数

javascript - 无法使用 JS/KnockoutJS 获取数组以显示在折线图中