Angular - 如何通过区分大小写来过滤

时间:2014-07-17 08:22:47

标签: angularjs

在我的应用中,我使用搜索框来过滤这些人。人名是静态的(目前),如何使这个过滤器区分大小写?

因为人们可以在这里按照自己的意愿输入他们的名字。所以我看这个过滤他们输入名字的方式。

这是我的配置,但没有工作;

<div class="container">
        <h1>Directive Test 1</h1>
        <input type="search" name="search" ng-model="search" placeholder="Search a person" id="">
        <div class="list" ng-controller="List">
            <ul>
                <li ng-repeat="person in people | filter:search:upperCase"> // not working! {{person.name}}</li>
            </ul>
        </div>
    </div>

有人帮我吗?

更新

我的js代码:

var List = function($scope){
    $scope.people = [
        {name:'Mo',age:20},
        {name:'Si', age:22},
        {name:'Yo', age:33}
    ]
}

Demo is here(buggy)

2 个答案:

答案 0 :(得分:4)

您可以像这样为过滤器提供比较器功能:

<li ng-repeat="person in people | filter:search:comparatorFunction">

并在控制器中:

$scope.comparatorFunction = function (name, search) {
    return (''+name).indexOf(''+search) > -1;
};

希望这有帮助。

答案 1 :(得分:0)

uppercasefilter是两个不同的装配工

更改此

person in people | filter:search:upperCase

到这个

person in people | filter:search | uppercase
当您想要以大写

呈现输出html时,使用

uppercase过滤器

现在,要过滤区分大小写,请使用自定义区分大小写的过滤器

更新了小提琴:http://jsfiddle.net/Tw7kW/