道招

AngularJs的provider里面的装饰器decorator

如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!

AngularJs的provider里面的装饰器decorator

我们经常在使用某些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
更新时间:
上一篇:浅析angular.identity下一篇:AngularJS的controllerAs常见用法

相关文章

关注道招网公众帐号