首页 > angularJS controller 第二个参数是什么意思?

angularJS controller 第二个参数是什么意思?

 var app = angular.module('app',['ngPlugin']);
    app.controller('frontTourism',['$scope','$http','stModal','$timeout','ngSubmit','alert',function(){/*省略*/}])

'$scope','$http','stModal','$timeout','ngSubmit','alert' 这些有什么用?


模块注入,引入你需要用到的其他模块。
比如$http就是一个模块


这些是用来注入的对象,只有注入这些对象,在下面的function中才能使用
$scope 页面传值需要
$http http请求需要

。。。


依赖注入的意思,我就说详细点吧。

一个对象通常有三种方式可以获得对其依赖的控制权:
(1) 在内部创建依赖;
(2) 通过全局变量进行引用;
(3)在需要的地方通过参数进行传递。
Angular的依赖注入是通过第三种方式实现的。其余两种方式会带来各种问题,例如污染全局作用域,使隔离变得异常困难等。
从功能上看,依赖注入会事先自动查找依赖关系,并将注入目标告知被依赖的资源,这样就可以在目标需要时立即将资源注入进去。

Angular有3种注入方式:
a、推断式注入
app.controller('MyCtrl', function($scope) {
});

b、标注式注入
var myFunc=function($scope) {
});
myFunc.$inject = ['$scope'];
app.controller('MyCtrl',myFunc);

c、内联注入
app.controller('MyCtrl', ['$scope', function($scope) {
}]);

第1种是根据写的参数名称,如$scope,内部自己调用$inject把$scope进行依赖注入,如果在前端开发中使用压缩工具,就会把$scope变成另外的字母了,就无法进行推断了,而另外两种方式你可以把function($scope)改成function(a)都没关系;
第2种要多写一行代码;
一般推荐使用第3种。

【热门文章】
【热门文章】