【问题标题】:Angular 1 - Global filter (search) on All values in an Array/JSONAngular 1 - 数组/JSON中所有值的全局过滤器(搜索)
【发布时间】:2017-01-16 21:22:15
【问题描述】:

我使用的是旧的 AngularJS 1.x,我有一个带有各种键/值的 JSON 对象。如何过滤数组中的任何值。我想创建一个全局搜索输入字段并输入可以在数据中找到的任何值。我想在控制器中执行 search() 。像这样的..

$scope.search = function(searchTerm){
  // Loop through objects  - angular.forEach
     // Loop through key/values
      // return matches
}

搜索将返回其中一个值 (indexof) >-1 的对象列表 提前致谢

【问题讨论】:

  • 这个问题太宽泛了,需要澄清一下:当没有匹配时,当有一个匹配时,当有多个匹配时,搜索函数应该返回什么?此外,是否可以假设所有对象值都是字符串类型?搜索是否只匹配值字符串的开头、值字符串的结尾或值字符串中的任何位置?它应该只支持精确匹配还是模糊匹配?您是否能够使用正则表达式或纯文本进行搜索。请提供一个 plunker 来展示您迄今为止所做的尝试。
  • 您可以为此使用filter 过滤器。如果对象具有字符串值,则searchTerm 将对对象属性进行字符串匹配以进行过滤。

标签: angularjs


【解决方案1】:

在 HTML 中

Enter subject: <input type = "text" ng-model = "searchText">
Subject:
<ul>
  <li ng-repeat = "studentInfo in students | filter: searchText">
  </li>
</ul>

searchText 将过滤 studentInfo 中的所有字段。

【讨论】:

    【解决方案2】:

    使用 Angular js 1 概念就是这么简单

    <input type="text"  value="Search" ng-model="searchquery">
    
    <div ng-repeat="datalist in datalists | filter:searchquery">
     <span>Name : {{ datalist.name }}</span>
     <span>Age : {{ datalist.age }}</span>
     <span>Age : {{ datalist.Designation }}</span>
    </div>
    

    Using Angular js 1

    Using Angular 2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-23
      • 1970-01-01
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      • 2017-01-12
      相关资源
      最近更新 更多