zoukankan      html  css  js  c++  java
  • AngularJS开发指南14:依赖注入

    推荐两种使用场景:

    1、控制器中的依赖注入

    控制器是负责应用行为的类。推荐的控制器声明方法如下:

    var MyController = function(dep1, dep2) {
      ...
    }
    MyController.$inject = ['dep1', 'dep2'];
    
    MyController.prototype.aMethod = function() {
      ...
    }
    

      

    2、工场方法

    工场方法负责创建AngularJS中的大部分对象。比如指令,服务,过滤器。工厂方法一般在模块中使用,推荐的方法如下:

    angualar.module('myModule', []).
      config(['depProvider', function(depProvider){
        ...
      }]).
      factory('serviceId', ['depService', function(depService) {
        ...
      }]).
      directive('directiveName', ['depService', function(depService) {
        ...
      }]).
      filter('filterName', ['depService', function(depService) {
        ...
      }]).
      run(['depService', function(depService) {
        ...
      }]);
    

      

    3、其它

    依赖能在需要时被导入:

    function SomeClass(greeter) {
      this.greeter = greeter
    }
    
    SomeClass.prototype.doSomething = function(name) {
      this.greeter.greet(name);
    }
    

    AngularJS注入器使用示例:

    行内标记

    someModule.factory('greeter', ['$window', function(renamed$window) {
      ...;
    }]);
    

      若使用$inject会导致代码膨胀:

    var greeterFactory = function(renamed$window) {
      ...;
    };
    
    greeterFactory.$inject = ['$window'];
    
    someModule.factory('greeter', greeterFactory);
    

      

  • 相关阅读:
    BZOJ 1707 [Usaco2007 Nov]tanning分配防晒霜
    BZOJ2697:特技飞行
    Bridging signals(NlogN最长上升子序列)
    HDU 4291 A Short problem(矩阵+循环节)
    计蒜之道 初赛第一场B 阿里天池的新任务(简单)
    1008: [HNOI2008]越狱
    1022: [SHOI2008]小约翰的游戏John
    1192: [HNOI2006]鬼谷子的钱袋
    2456: mode
    BZOJ-1968
  • 原文地址:https://www.cnblogs.com/jifeng/p/3481430.html
Copyright © 2011-2022 走看看