zoukankan      html  css  js  c++  java
  • Angular:依赖注入

    使用依赖注入

    • 像services, directives, filters, 和animations这些组件被定义通过可注入的factory方法或者构造函数。这些组件可以注入"service" and "value" 组件作为他们的依赖;
    • 通过构造函数定义的控制器可以注入任意"service" and "value"作为它的依赖,而且还能注入特别的依赖;
    •  run 方法接受一个能注入"service", "value" and "constant"作为依赖的函数,注意不能注入"providers"到 run 代码块里
    •  config 方法接受一个能注入"provider" and "constant" 组件作为依赖的函数,注意不能注入"service" or "value"到配置项里

    Factory 方法

    使用factory function定义一个directive, service, or filter。factory方法注册的是一个模块。以下是推荐声明factory方法的方式:

    angular.module('myModule', [])
    .factory('serviceId', ['depService', function(depService) {
      // ...
    }])
    .directive('directiveName', ['depService', function(depService) {
      // ...
    }])
    .filter('filterName', ['depService', function(depService) {
      // ...
    }]);

    Module Methods

    通过调用config 和run 方法指定函数运行配置和运行时模块。这些函数都是可注入依赖的就像上面factory函数那样。

    angular.module('myModule', [])
    .config(['depProvider', function(depProvider) {
      // ...
    }])
    .run(['depService', function(depService) {
      // ...
    }]);

    Controllers

    控制器是“类”或“构造函数”,负责提供在模板中支持声明性标记的应用程序行为。推荐使用数组表示法来声明控制器:

    someModule.controller('MyController', ['$scope', 'dep1', 'dep2', function($scope, dep1, dep2) {
      ...
      $scope.aMethod = function() {
        ...
      }
      ...
    }]);

    services不同,在应用程序中可以有许多相同类型的控制器的实例。

    而且,额外的依赖在控制器也是可用的:

    • $scope: 控制器与DOM元素密切相关因此可以访问scope。其他像services的组件只能访问$rootScope;
    • resolves: 如果控制器实例化是route的一部分,那么route部分的任何值解析注入到控制器都可用

  • 相关阅读:
    Codeforces Round #416 (Div. 2) 本来以为这个时间是晚上的,下午就没做
    World Finals 2017
    MFC拾遗
    Codeforces Round #415 (Div. 2) 翻车啦
    2017年“达内杯”台州学院第十届大学生程序设计竞赛 非官方题解
    TOJ 4008 The Leaf Eaters
    奇奇怪怪的冒泡排序 TOJ 2014: Scramble Sort
    python 函数(2)
    Python 函数初识 (1)
    python 文件名的操作
  • 原文地址:https://www.cnblogs.com/miss-radish/p/5151371.html
Copyright © 2011-2022 走看看