美文网首页Angular
AngularJs的依赖注入方式

AngularJs的依赖注入方式

作者: Vampire618 | 来源:发表于2017-05-26 11:32 被阅读0次

在定义controller,module,service,and directive时有两种方式,

方式一:
var myModule = angular.module('myApp', []);

myModule.controller('myCtrl', ['$scope', 'Project', function($scope, Project) {

}]);

方式二:

var myModule = angular.module('myApp', []);

function myCtrl($scope, Project) {

}

myModule.controller('myCtrl', myCtrl);

这两种方式在本质上并没有什么区别,不过方式二会造成作用域的污染。

Angular的依赖注入方式有三种:

1、简单注入方式(Simple injection method)
function myCtrl($scope,Project){};

myModule.controller('myCtrl', myCtrl);

//或者

myModule.controller(function($scope,Project){

})

AngularJs会扫描function的参数,提取参数的名称(name)作为function的依赖,

所以这种方式要求保证参数名称的正确性,但对参数的顺序并没有要求;

但是这种注入方式有一个问题,当我们将项目发布到正式环境时都会压缩我们的代码,这时function的参数可能会变成a,b,这就会导致我们的代码出现问题,下面两种注入方式可以帮我们解决这个问题。

2.数组注释法(array-style notation)

myModule.controller('myCtrl', ['$scope', 'Preject', function($scope, Project) {

}])

每一个依赖的参数值(字符串)都会以相同的顺序存放在一个数组里,数组的值与后面的function参数一一对应,这样即使压缩了也不会有什么问题。

如果你不喜欢这种数组注释的定义方式,下面还有一种方式。

3.显示调用function的$inject

AngularJs提供了一种向injector server通知你想要注入的依赖的方式

function myCtrl(a, b) {

//$scope, Project,故意改成a,b模拟压缩后的情形

}

myCtrl.$inject = ['$scope', 'Project'];

myModule.controller('PhoneDetailCtrl', myCtrl);

如上,通过设置funciton的$inject属性,可以达到依赖注入的效果;

之前又被问到这个,不懂,现在看了这篇文章,终于了解到其中的差异了。

相关文章

  • Angular基础学习-04

    本节包括AngularJS 依赖注入及路由 AngularJS 依赖注入 什么是依赖注入 wiki 上的解释是:依...

  • 资料收集

    依赖注入 AngularJs依赖注入的研究 (已读) 依赖注入(已读)

  • AngularJs的依赖注入方式

    在定义controller,module,service,and directive时有两种方式, 方式一:var...

  • AngularJS 依赖注入

    什么是依赖注入 wiki 上的解释是:依赖注入(Dependency Injection,简称DI)是一种软件设计...

  • AngularJs依赖注入

    推断式注入声明 如果没有明确的声明, AngularJS会假定参数名称就是依赖的名称。因此,它会在内部调用函数对象...

  • AngularJS中的依赖注入

    1.背景介绍 依赖注入式AngularJS的重要特性之一,依赖注入简化了Angular解析模块/组件之间依赖的过程...

  • AngularJS入门案例

    AngularJS入门 ​ AngularJS核心的特性就是:MVC模式、模块化、双向绑定、依赖注入等特性。利...

  • 开源项目的依赖注入

    开源项目的依赖注入 依赖注入概念 依赖注入(DI:Dependency Injection): 依赖注入方式: B...

  • angularJS中的依赖注入

    大家好,我是IT修真院成都分院第7期的学员韩建名,一枚正直纯洁善良的WEB前端程序员。 今天给大家带来的是:ang...

  • angularJS中的依赖注入

    1.背景介绍 以前原始社会,我们需要斧子,然而由于还没有社会分工,只能自己打磨一把使用,对应在程序上是我们需...

网友评论

    本文标题:AngularJs的依赖注入方式

    本文链接:https://www.haomeiwen.com/subject/ubgtfxtx.html