zoukankan      html  css  js  c++  java
  • $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 来装修。

  • 相关阅读:
    Net EF框架+ MySql示例
    Net EF框架+ MySql示例
    C#中读写INI配置文件
    C#中读写INI配置文件
    C#中读写INI配置文件
    IntelliJ IDEA 常用快捷键和设置
    IntelliJ IDEA 常用快捷键和设置
    C++STL_max
    出错啦!
    枝晶生长的宏微观模型
  • 原文地址:https://www.cnblogs.com/keatkeat/p/4795950.html
Copyright © 2011-2022 走看看