如何使用angular.js按'关键字'进行过滤?

时间:2014-05-25 22:36:43

标签: angularjs search filter

我正在尝试使用基本的HTML& amp;创建一个强大的过滤系统。 angular.js,到目前为止,在这里的几个人的帮助下,我最终得到了这个:

http://codepen.io/liamtarpey/pen/jfvDK

它工作正常,唯一的问题是如果你向后输入一些东西,例如,如果用户搜索:'taco mexican'或甚至'mexican taco',你根本就得不到任何结果。

有没有办法将过滤器用作更多关键字过滤器而不是字符串过滤器?

1 个答案:

答案 0 :(得分:0)

您必须遍历搜索字词中每个字词的每个属性。这有效:

$scope.search = function(user) {
  var match = true;
  $scope.query.split(" ").forEach(function(word) {
    if (match === true) {
      var wordMatch = false;
      for (var prop in user) {
        if (user.hasOwnProperty(prop)) {
          if(user[prop].toLowerCase().indexOf(word.toLowerCase()) > -1) wordMatch = true;
        }
      }
    }
    match = wordMatch;
  });
  return match
}