angularjs培训之filter

本文介绍了AngularJS中Filter的基本用法,包括如何利用Filter进行数据过滤和格式化,同时展示了如何实现动态过滤及自定义Filter的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在angularjs中,filter提供了格式化数据或者过滤数据的功能:

1、请看下面简单的例子

<div ng-controller=”phoneListExtendController”>
I have {{friends.length}} friends. They are:
<input type=”search” ng-model=”q” placeholder=”filter friends…” />
<ul>
<li ng-repeat=”friend in friends | filter:q”>
[{{index + 1}}] {{friend.name}} who is {{friend.age}} years old.  
</li>  
</ul>  
<hr>  
<ul>  
<li ng-repeat=”name in names | filter : ‘j’”>  
[{{
index + 1}}] is {{name}}.
</li>
total {{names.length}}
</ul>
</div>
controller定义在了controller2.js中,我们只用ng-repeat指令循环遍历friends,显示每个人的姓名和年龄,
这个不是我们今天介绍的重点,继续看:
我们通过管道方式使用filter ng-repeat=”friend in friends | filter:q”,并且filter绑定了一个model,
这个model是个input框,也就是说你输入的内容就是做为了ng-repeat的输入,遍历friends中的属性,判断是否包含
输入的字符。

效果如下:

wKioL1QqRPLDpkIuAADv0m74Kvs128.jpg

wKiom1QqRMaBg7W6AAB9RwUQk1o788.jpg

2、也可以指定要过滤的字符串,代码如下:

<li ng-repeat=”name in names | filter : ‘j’”>
[{{$index + 1}}] is {{name}}.
</li>
3、如果在controller中动态指定需要过滤的内容,修改代码如下:

ng-repeat=”friend in friends | filter:q.name”>
[{{index + 1}}] {{friend.name}} who is {{friend.age}} years old.  
另外还需要在controller中给
scope挂一个属性值,

$scope.q = {
name : ‘m’
}
有上述的代码就可以实现动态过滤集合的功能。

4、自定义filter

当然内置的filter无法满足你所有的需求,这时你就可以搞了,想怎么搞就可以怎么搞了,你要你愿意。
通常我们可以使用module的filter方法来定义一个。如下:

module.filter(filterName,function(){
return function(input){
return ;
}
});
我们现在先实现一个用filter给字符串增加个!号,
先声明一个字符串 $scope.filters = ‘this is my first filter’;
接下来我们来定义filter:

app.filter(‘myFilter’,function(){
return function(input){
return input + “!”;
}
});
说明: myFilter :filter名称

input : 定义的字符串的值。

下面就是显示内容了:

在标签中使用 {{filters | myFilter}}.

剩下来就交给你了,try it!

5、内置(build-in)filter:

currency,date,filter,json,limitTo,lowercase,number,orderBy,uppercase

这些用法都比较简单,不再附上例子了,详细的可以参考

http://docs.angularjs.cn/api/ng/filter

filter的先介绍到这里,有什么疑问或者想法,请留言!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值