基本上我想知道在这种方法之间声明控制器之间的区别是什么:
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仅适用于控制器。至少那是我理解的。
请帮助我理解,我一直在研究这个问题,并且在网上没有关于此事的大量解释。
提前致谢。
答案 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是第二个功能参数。
始终记住以与传递参数相同的顺序注入。
希望这个答案可能会给你一些想法。