Angularjs 控制器、服务和其他方面的不同语法
两者的区别是什么Angularjs 控制器、服务和其他方面的不同语法,angularjs,angularjs-scope,Angularjs,Angularjs Scope,两者的区别是什么 app.controller("MyCtrl", function($scope, $http){ //... }); 及 即使两者给出相同的结果,也没有错误。事实上,第一种方法使代码更干净,编写起来更少。在服务、指令中也是一样的。有人能给我简单介绍一下吗。没有功能上的区别。使用.controller('ctrl',['$scope',function($scope){…}是为了允许正确读取缩小的版本 关于缩小的说明-AngularJS 由于Angular根据控制器构
app.controller("MyCtrl", function($scope, $http){
//...
});
及
即使两者给出相同的结果,也没有错误。事实上,第一种方法使代码更干净,编写起来更少。在服务、指令中也是一样的。有人能给我简单介绍一下吗。没有功能上的区别。使用
.controller('ctrl',['$scope',function($scope){…}
是为了允许正确读取缩小的版本
关于缩小的说明-AngularJS
由于Angular根据控制器构造函数的参数名称推断控制器的依赖关系,因此如果要缩小MyCtrl
controller的JavaScript代码,其所有函数参数也将缩小,依赖关系注入器将无法正确识别服务
我们可以通过使用依赖项的名称(以字符串形式提供)对函数进行注释来克服此问题,这些依赖项不会缩小。提供这些注入注释的方法有两种:
function MyCtrl($scope, $http) {...}
MyCtrl.$inject = ['$scope', '$http'];
app.controller('MyCtrl', MyCtrl);
function MyCtrl($scope, $http) {...}
app.controller('MyCtrl', ['$scope', '$http', MyCtrl]);
app.controller('MyCtrl', ['$scope', '$http', function($scope, $http) {...}]);
添加到wzVang的答案中。您可以遵循您的第一个语法
.controller('ctrl', function($scope){
});
没有任何问题。它是可读的。但是你应该在生产中缩小你的代码。然后你可以使用
.controller('ctrl', function($scope){
});