问:为什么我在角度控制器中使用依赖注入?

时间:2016-06-13 09:12:17

标签: angularjs scope controller

基本上我想知道在这种方法之间声明控制器之间的区别是什么:

var roles = db.RoleTables.ToList();
empreg.Role = GetSelectListItems(roles);
empreg.SelectedRole = db.RoleTable.Where(re => re.Name == employee.Role).Select(r => r.Id).FirstOrDefault();

而且:

 myApp.controller('GreetingController', ['$scope', function($scope) {
     $scope.greeting = 'Hola!';   
 }]);

据我所知,角度控制器/指令/过滤器等声明中的括号用于依赖注入,但是使用Controller的$ scope仅适用于控制器。至少那是我理解的。

请帮助我理解,我一直在研究这个问题,并且在网上没有关于此事的大量解释。

提前致谢。

2 个答案:

答案 0 :(得分:2)

在第二个版本中,依赖注入仅依赖于$scope变量名。因为它将在缩小时重命名,这将不再起作用。

有关此问题的更多详情:Angularjs minify best practice

答案 1 :(得分:1)

在服务器上部署代码之前,我们使用它来构建它,并且在此过程中代码得到minify和uglify,而处理构建角度代码的方式得到压缩,以便简单地替换长变量名称。 例如

myApp.controller('GreetingController', ['$scope','myService', function($scope,m) {
     $scope.greeting = 'Hola!';   
 }]);

当代码缩小时,它可能会变为

 myApp.controller('GreetingController', ['$s', 'm', function($scope,m) {
     $scope.greeting = 'Hola!';   
 }]);

它表示$ s作为依赖性是功能中的第一个参数。 amd m是第二个功能参数。

始终记住以与传递参数相同的顺序注入。

希望这个答案可能会给你一些想法。