为多个字段过滤angular-ui typeahead自动完成

时间:2014-08-11 13:39:03

标签: javascript angularjs angular-ui

我有snippet in plunker。 我尝试过滤两个字段的结果(在OR条件下)

typeahead="state as state.name for state in statesWithFlags | filter:{name:$viewValue,country:$viewValue}"

而不是当前

typeahead="state as state.name for state in statesWithFlags | filter:{name:$viewValue}"

条件应用为AND术语,但我需要OR术语

1 个答案:

答案 0 :(得分:3)

您可以创建自定义过滤器:

angular.module('plunker')
  .filter('custom', function () {
    return function(inputArray, args) {
      var outputArray = [];
      // Filtering logic below:
      angular.forEach(inputArray, function (item) {
        if (item.name.indexOf(args.viewValue) !== -1 || item.country.indexOf(args.viewValue) !== -1) {
          outputArray.push(item);
        }
      });
      return outputArray;
    };
  });

在这里查看工作人员: http://plnkr.co/edit/4s2ZxOokiXw9uMG5r75

您可以在此处找到用于创建自定义过滤器的文档:https://docs.angularjs.org/guide/filter#creating-custom-filters