angularjs自定义过滤理解

本文详细介绍了 AngularJS 中自定义过滤器的使用方法,包括 HTML 和 JS 的配置方式,解释了 arguments 对象及 Array 方法的应用,并展示了如何实现自定义过滤逻辑。

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

        今天同事问道我关于argularjs自定义过滤器的理解,我没有说出个所以然来。于是在坐公交回来的路上我看了一些关于过滤器的内容。我将我对自定义过滤器的理解整理出来。方便自己以后翻阅。希望大家阅读后能够指出我理解错误的地方。

html:

<div ng-app="myApp" ng-controller="myCtrl">     <div> newString: {{"jj" | myfilter:1:2:3:5}}     </div>  </div>
js:

app.filter('myfilter', function() { 
    return function(text) {
        var newArguments= Array.prototype.slice.call(arguments);
        return text+newArguments.join(',');
    }

这里首先解读一下:
1.自定义过滤器使用

在html上我们通过管道符(|)来划分,格式是{{过滤主体|过滤器名称:过滤参数1:过虑参数2}}

在js上。我主要说一下里面的函数 ,格式是return function(过滤主体,过滤参数1,过滤参数2){操作}

2.arguments:这里要提到arguments是js的对象,arguments代表参数,这里arguments接受到是实参,就是上面传入的类数组,里面有jj,1,2,3,5,而我们的形参只有一个,所以text是过滤主体

3.Array.prototype.slice.call(),这是一个Arry的方法这是将arguments类数组对象转成数组对象

4.join() 这是将数组以括号里的内容作为分隔符转成字符串

5. string+数组 (这里是因为去掉join(',')的结果跟有join结果一样)

这涉及到js的隐式转换,根据加法运算操作符规则,如果两个操作值都是字符串,则将它们拼接起来,如果只有一个操作值为字符串,则将另外操作值转换为字符串,然后拼接起来,如果一个操作数是对象、数值或者布尔值,则调用toString()方法取得字符串值,然后再应用前面的字符串规则。数组的元素被转换为字符串,这些字符串由逗号分隔,连接在一起。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值