在我的应用中,我使用搜索框来过滤这些人。人名是静态的(目前),如何使这个过滤器区分大小写?
因为人们可以在这里按照自己的意愿输入他们的名字。所以我看这个过滤他们输入名字的方式。
这是我的配置,但没有工作;
<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}
]
}
答案 0 :(得分:4)
您可以像这样为过滤器提供比较器功能:
<li ng-repeat="person in people | filter:search:comparatorFunction">
并在控制器中:
$scope.comparatorFunction = function (name, search) {
return (''+name).indexOf(''+search) > -1;
};
希望这有帮助。
答案 1 :(得分:0)
uppercase
和filter
是两个不同的装配工
更改此
person in people | filter:search:upperCase
到这个
person in people | filter:search | uppercase
当您想要以大写呈现输出html时,使用 uppercase
过滤器
现在,要过滤区分大小写,请使用自定义区分大小写的过滤器
更新了小提琴:http://jsfiddle.net/Tw7kW/