我是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依赖项
angular.js:14362错误:[$ inextor:unpr]
你能帮我吗?
使用此Synthax angular.module('app', [])
,您是覆盖模块创建。您应该使用angular.module('app')
取回它。
[]
应仅使用一次:在创建模块时。
来自Angular module
DOC:
注意使用
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);
这是因为使用[]
,这意味着您正在创建模块,而没有它,这意味着您要找到模块。由于在您创建服务时创建了模块,因此您无需再次创建它,只需找到它即可。