$provide.decorator

$provide.decorator 是angular 提供的一个功能。

目的是让我们可以扩展或装修我们的服务. 

var app = angular.module("app", []);
app.factory("firstService", function () {
    return {
        data: "5"
    }
});
app.factory("secondService", function () {
    return {
        data: "5"
    }
});
app.config(["$provide", function ($provide) {
    $provide.decorator('firstService', ["$delegate", "secondService", function (originalFirstService, secondService) {
        log(secondService); //也可以注入其它服务
        log(originalFirstService.data); //5          
        originalFirstService.data2 = 10;
        return originalFirstService; //也可以return a new service
    }]);
}]);
app.controller("ctrl", ["$scope", "firstService", function ($scope, firstService) {
    log(firstService.data2); //10 
}]);

在 app.config 时写好逻辑代码,当service被注入创建时就会经过decorator后才输出最终的服务。

一个服务可以被装修多次,$provide.decorator 会把逻辑装入array,在初始化的时候for loop 来装修。

 

转载于:https://www.cnblogs.com/keatkeat/p/4795950.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值