[英]angularjs services using $inject?
(function() {
angular.module('MyApp')
.factory('Contact', Contact);
Contact.$inject = ['$http'];
function Contact($http) {
return {
send: function(data) {
return $http.post('/contact', data);
}
};
}
})();
我在上面的代码中找到了样板文件。 我很少有困惑:
为什么不直接注入这样的$http
angular.module('MyApp').factory('Contact', function($http){ });
是否有必要将服务置于自执行功能之内?
首先 - 当您尝试最小化角度文件时,会出现问题。 你的最小化器可能会将$ http转换为变量b,如果你使用$inject
,它们的身份仍会保留在字符串中,否则你会有错误。
第二 - 当您使用自执行功能时,您正在隔离服务范围。 当您将所有文件合并为一个文件时,这将有所帮助。 如果不这样做,那么具有相同名称的变量或函数将产生错误。
这在John Papa的风格指南中有更详细的解释
希望能帮助到你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.