angularJS学习之路(二十八)---拦截服务

$provider 服务提供了在服务实例创建时对其进行拦截的功能


拦截的目的就是对服务就行  扩展(修改) 或者  用另外的内容进行替代


装饰器的功能是非常强大的,它不仅可以在应用在我们自己的服务上,


也可以对angularJS的核心服务进行拦截、中断、甚至替换功能的操作


事实上angularJS中很多功能的测试就是借助  $provider.decorator() 建立的


对服务进行扩展:将外部数据缓存进localStorage的功能

对服务进行封装:作用是在开发中进行调试和跟踪


假如,我们想对我们定义过的服务加入日志功能,我们就可以借助  decorator()函数  


该函数接受两个参数:


name 字符串:将要拦截的服务的名称

函数:在服务实例化时调用该函数,这个函数由injector.invoke调用,可以将服务注入这个函数中


$delegate 是可以进行装饰的最原始的服务,为了装饰其他的服务,需要将其注入到  装饰器


var gameDecorator = function () {
	alert('i am a decorator');

};

app.config(function ($provide) {
	$provide.decorator('game',gameDecorator);
});


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值