我们经常在使用某些Service的时候,更希望它能具备一些额外的功能,这时我们难道改这个Service吗?如果是系统自带的呢,改吗?这当然不现实吧。所以我们的装饰器decorator就发挥作用了,它能让已有的功能锦上添花。我们在config里面使用装饰器。
使用方法

      第一个参数:需要装饰的Service名
      第二个参数:一个接受$delegate的回调函数,$delegate代表我们的原来的service实例。

需要注意的是constant常量是不可以被装饰的。
示例代码如下:

var app = angular.module("myApp", []);
app.controller('myCtrl', ['$scope','myInfo', function($scope, myInfo){
  console.log(myInfo);
}]);

app.config(['$provide',function($provide) {
  $provide.decorator('myInfo', function($delegate){
    $delegate.lastName = "Prompt";
    return $delegate;
  })
}]);

app.service('myInfo', function(){
  this.fistName = "Shadow";
})

原来的服务myInfo只有firstName一个属性,我们利用decorator后在不修改myInfo代码的情况下里面添加了lastName属性。
decorator

随机文章

j2se java编写简易聊天室程序
j2se java编写简易聊天室程序

苹果的chromebook
苹果的chromebook

迅雷下载广告无孔不入
迅雷下载广告无孔不入

QQ漂流瓶更好玩了,装有GPS导航
QQ漂流瓶更好玩了,装有GPS导航

浅析angular.identity
浅析angular.identity

IOS在Cyber Monday的销量额贡献比android大
IOS在Cyber Monday的销量额贡献比android大

相关文章

engadget发布上周android系统更新摘要
engadget发布上周android系统更新摘要

黑莓官方催促twitter用户用回老版本客户端
黑莓官方催促twitter用户用回老版本客户端

受期待的网页游戏《圣境传说》大陆代理权被昆仑万维获得
受期待的网页游戏《圣境传说》大陆代理权被昆仑万维获得

Java基础第十二讲:面向对象基础(六)
Java基础第十二讲:面向对象基础(六)

起凡被黑?咋做任务的空间几天都打不开啊
起凡被黑?咋做任务的空间几天都打不开啊

内容分享:道招
本文链接:AngularJs的provider里面的装饰器decorator
道招声明:除特别标注或作者不详外,本站所有文章均为原创,转载请注明。欢迎共同关注互联网!