您的位置:首页 > Web前端 > AngularJS

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

2015-11-24 19:44 495 查看
$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);
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: