AngularJS $在服务注入中注入错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AngularJS $在服务注入中注入错误相关的知识,希望对你有一定的参考价值。
我是Angular的新手,所以如果你能帮助我会很高兴。我将逻辑拆分为2个文件(控制器和服务)。我的服务代码:
(function () {
'use strict';
angular
.module('app', [])
.factory('authservice', authservice);
authservice.$inject = ['$http', '$logger'];
function authservice($http, $logger) {
return {
signInOwner: signInOwner,
signUpOwner: signUpOwner
};
function signInOwner(owner) {
}
function signUpOwner(owner) {
}
};
})();
我的控制器代码:
(function () {
'use strict';
angular
.module('app', [])
.controller('SignUpController', SignUpController);
SignUpController.$inject = ['authservice'];
function SignUpController (authservice) {
var vm = this;
}
})();
我在controller.js之前包含了我的services.js,但仍然遇到有关错误的authservice依赖项的错误
手指:14362:[注入]
请问你能帮帮我吗?
答案
使用此synthax angular.module('app', [])
,您将覆盖模块创建。您应该使用angular.module('app')
来检索它。
[]
应该只使用一次:在创建模块时。
请注意,使用
angular.module('myModule', [])
将创建模块myModule
并覆盖任何名为myModule
的现有模块。使用angular.module('myModule')
检索现有模块。
另一答案
在您的控制器代码中替换:
angular
.module('app', [])
.controller('SignUpController', SignUpController);
对于
angular
.module('app') // notice the lack of [] here!!
.controller('SignUpController', SignUpController);
这是因为使用[]
意味着你正在创建模块而没有它意味着你正在找到模块。由于模块是在创建服务的位置创建的,因此您无需再次创建它,只需找到它即可。
以上是关于AngularJS $在服务注入中注入错误的主要内容,如果未能解决你的问题,请参考以下文章
在 AngularJS/Jasmine 中注入 Mock 服务
注入 $cookieStore Angularjs 时未捕获的错误