AngularJs - 注入$ scope

时间:2016-03-29 19:12:55

标签: angularjs angularjs-scope angularjs-injector

以下两个例子是否相同?

1

app.controller('ctrl',function($scope){});

2

app.controller('ctrl',['$scope',function($scope){});

我是AngularJs的新手。从我的测试来看,他们做同样的事情,但不确定为什么有两种不同的方式。

3 个答案:

答案 0 :(得分:2)

它们将以相同的方式起作用,但通常第二种方法是首选方法。这与缩小事实有关,而且当您分发应用程序时,如果变量名称不是数组中的项目,则可能会更改变量名称。

当然,如果你的控制器名称在缩小期间发生变化,这将导致Angular的依赖注入失败。

答案 1 :(得分:2)

Dependency Injection是角度js的一个很棒的特性,用于何时进行JS缩小,

在JS缩小之前:ctrl.js

app.controller('ctrl'['$scope','$rootScope','$state',function($scope,$rootScope,$state){
    $scope.message="Hello World"; //Must be maintain serial of Dependency Injection either wise show error

       });

JS缩小后:ctrl.min.js

app.controller('ctrl'['$scope','$rootScope','$state',function(a,b,c){
a.message="Hello World";
    //So do not write $scope again just define 'a' instead of '$scope' like as $rootScope=b,$state=c ,so huge memory save in JS file.

   });

答案 2 :(得分:1)

它们都是等效的,并且可以正常工作。您可以选择其中一个,具体取决于您计划对项目执行的操作。缩小使用第二种表示法非常重要,第二种表示法称为内联数组注释,或者更常见的是依赖性注释

您可以在AngularJS文档here中找到有关依赖注入的详细信息。