首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用单个文本框向多个字段添加严格搜索

使用单个文本框向多个字段添加严格搜索
EN

Stack Overflow用户
提问于 2015-03-31 08:04:33
回答 2查看 555关注 0票数 1

有一个基本的角度应用程序,

代码语言:javascript
运行
复制
  <input type="text" ng-model="txt.name" />
  <ul>
    <li ng-repeat="d in data | filter: txt:strict">
      <span>{{d.name}}</span>
      <br />
      <span>{{d.description}}</span>
      <br />
      <span>{{d.loremipsum}}</span>
      <br />
    </li>
  </ul>

JS:

代码语言:javascript
运行
复制
var app = angular.module('app', []);

app.controller("mc", function($scope){

$scope.data = [{
  'name': 'asd',
  'description': 'jiocioasdiasidjpoasdko',
  'loremipsum': 'loremipsum'
}, {
  'name': 'qwe',
  'description': 'poqwpeqwpe',
  'loremipsum': 'loremipsum'
}, {
  'name': 'czxc',
  'description': 'asdasdasd',
  'loremipsum': 'loremipsum'
}]
});

我希望能够通过namedescription进行搜索,而不是通过loremipsum搜索。

我该怎么做?

JS BIN实例

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-31 08:16:08

您可以创建自定义筛选器,请参见下面的演示

代码语言:javascript
运行
复制
var app = angular.module('app', []);

app.controller("mc", function($scope) {

  $scope.data = [{
    'name': 'asd',
    'description': 'jiocioasdiasidjpoasdko',
    'loremipsum': 'loremipsum'
  }, {
    'name': 'qwe',
    'description': 'poqwpeqwpe',
    'loremipsum': 'loremipsum'
  }, {
    'name': 'czxc',
    'description': 'asdasdasd',
    'loremipsum': 'loremipsum'
  }];
});

app.filter('customFilter', function() {
  return function(items, string) {
    var filtered = [];
    var stringMatch = new RegExp(string, 'i');
    for (var i = 0; i < items.length; i++) {
      var item = items[i];
      if (stringMatch.test(item.name) || stringMatch.test(item.description)) {
        filtered.push(item);
      }
    }
    return filtered;
  };
});
代码语言:javascript
运行
复制
<html ng-app="app">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-controller="mc">
  <input type="text" ng-model="txt.name" />
  <ul>
    <li ng-repeat="d in data | customFilter: txt.name">
      <span>{{d.name}}</span>
      <br />
      <span>{{d.description}}</span>
      <br />
      <span>{{d.loremipsum}}</span>
      <br />
    </li>
  </ul>
</body>

</html>

票数 1
EN

Stack Overflow用户

发布于 2015-03-31 08:16:00

下面是一个使用自定义函数的示例:自定义函数解

您可能希望在自定义函数中使用match而不是===。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29363590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档