AngularJs,过滤器不区分大小写

时间:2013-08-06 13:45:42

标签: javascript json angularjs filter angularjs-filter

我的json充满了小写和大写的数据。 例如:

[

  { "firstName":"JoHn" , "lastName":"DoE" }, 
  { "firstName":"aNnA" , "lastName":"smIth" }, 
  { "firstName":"PeTer" , "lastName":"JOnes" }

]

我有类似的东西:

Search: <input ng-model="searchText">
        <table id="searchTextResults">
          <tr><th>Name</th><th>Phone</th></tr>
          <tr ng-repeat="friend in friends | filter:searchText">
            <td>{{friend.firstName}}</td>
            <td>{{friend.lastName}}</td>
          </tr>
        </table>

我想要做的是搜索朋友而不看高箱和低箱。 所以基本上当我在输入中输入“John”,“JOHN”或简称“john”时,它应该归还我的朋友John。

那么可以将不区分大小写的选项应用于过滤器吗?

2 个答案:

答案 0 :(得分:19)

有一种方法可以打开案例包含过滤器:

<div data-ng-repeat="item in items | filter : searchText : false"></div>

Plunker

答案 1 :(得分:9)

将函数名称传递给您在适用范围内定义的filter,其中您使用字符串toLowerCase。见ngFilter。函数签名是一个简单的function (item) { ... }

控制器中的JS示例:

$scope.filterOnlyFoo = function (item) {
    return item == "foo";
}

示例HTML:

<div data-ng-repeat="item in items | filter: filterOnlyFoo"></div>

Sample Plunker