Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 定义自定义服务的语法_Javascript_Angularjs_Angular Services - Fatal编程技术网

Javascript 定义自定义服务的语法

Javascript 定义自定义服务的语法,javascript,angularjs,angular-services,Javascript,Angularjs,Angular Services,我的服务在这两种情况下都能正常工作,但我不理解这两种语法之间的区别。请开导我。官方文件对此并不十分明确 语法A: service.factory('Alert',['$rootScope', '$timeout', function($rootScope, $timeout) { //Do stuff }]); 语法B: service.factory('Alert', function($rootScope, $timeout) { //Do stuff }); 它们都提供相同的功

我的服务在这两种情况下都能正常工作,但我不理解这两种语法之间的区别。请开导我。官方文件对此并不十分明确

语法A:

service.factory('Alert',['$rootScope', '$timeout', function($rootScope, $timeout) {
  //Do stuff
}]);
语法B:

service.factory('Alert', function($rootScope, $timeout) {
 //Do stuff 
});

它们都提供相同的功能,但是
语法A
(内联括号表示法)允许通过JavaScript缩略器缩略代码。因为
语法A
语法B
长一点(并且违反了DRY原则),所以最合适的情况,也可能是您希望使用它的唯一情况是当您想要缩小代码时

因为Angular从 控制器构造函数的参数,如果要 缩小[PhoneListCtrl]控制器的JavaScript代码,所有 函数参数也将被缩小,并且依赖性 喷油器将无法正确识别服务


它们都提供相同的功能,但
语法A
(内联括号表示法)允许通过JavaScript缩略器缩略代码。因为
语法A
语法B
长一点(并且违反了DRY原则),所以最合适的情况,也可能是您希望使用它的唯一情况是当您想要缩小代码时

因为Angular从 控制器构造函数的参数,如果要 缩小[PhoneListCtrl]控制器的JavaScript代码,所有 函数参数也将被缩小,并且依赖性 喷油器将无法正确识别服务


我还在文档中找到了第三种语法。它似乎比“Syntax A”(数组表示法)更合适,并且与JavaScript minifier兼容:

var service = angular.module('alertService', []);
var alertServiceFactory = function($rootScope, $timeout) {
 //Do stuff 
});
alertServiceFactory.$inject = ['$rootScope', '$timeout'];
service.factory('Alert', alertServiceFactory);

这里有更多信息:

我还在文档中找到了第三种语法。它似乎比“Syntax A”(数组表示法)更合适,并且与JavaScript minifier兼容:

var service = angular.module('alertService', []);
var alertServiceFactory = function($rootScope, $timeout) {
 //Do stuff 
});
alertServiceFactory.$inject = ['$rootScope', '$timeout'];
service.factory('Alert', alertServiceFactory);
更多信息请点击此处:

查看文档。特别是内联注释小节,我在哪里可以使用DI?第节查看文档。特别是内联注释小节,我在哪里可以使用DI?部分