我有两个模块和工厂,我需要从第一个模块到另一个模块实现工厂。
angular.module('APIs', [])
.value ("myValue" , "12345")
.factory('apiUrl',['config','url',apiUrl])
function apiUrl(config,url){
}
angular.module('users.service', ['APIs'])
.factory('userService',['myValue',userService])
function userService(apiUrl,myValue){
//login function
function login(){
console.log('myValue',myValue)
console.log('loginUrl',apiUrl)
}
return {
login:login
}
}
注意:注入myValue时没问题,但是API Factory中的问题
和我的日志:
错误:[$ injector:unpr] http://errors.angularjs.org/1.5.0/ $ injector / unpr?p0 = urlProvider%20%3C-%20url%20%3C-%20apiUrl%20%3C-%20userService 在错误(本机)
抱歉我的英语。
答案 0 :(得分:0)
我会这样做:
factory
,请使用angular.module('app').factory()
。如果您使用service
angular.module('app').service()
gulp
gulp-concat
app.js
文件中,并且在连接文件时,请记住,此文件应位于顶部。app.js
文件中保留值和常量,或者创建新文件,例如factory
或service
并包含它,就像我在下面注入它一样。<强> app.js 强>
(function () {
'use strict';
var app = angular.module('app', [
// other module
]);
app.value('myValue', '12345');
app.constant('myConst', 'some_constant');
app.config(['$interpolateProvider', function ($interpolateProvider) {
$interpolateProvider.startSymbol('[[');
$interpolateProvider.endSymbol(']]');
}]);
}());
<强> factory.js 强>
(function () {
'use strict';
angular
.module('app')
.factory('apiUrlFactory', apiUrlFactory);
apiUrlFactory.$inject = [];
function apiUrlFactory() {
var self = this;
self.url = 'some_url';
return self;
}
}());
<强> service.js 强>
(function () {
'use strict';
angular
.module('app')
.service('userService', userService);
userService.$inject = ['apiUrlFactory', 'myValue'];
function userService(apiUrlFactory, myValue) {
var self = this;
self.login = function () {
console.log('myValue', myValue);
console.log('loginUrl', apiUrlFactory.url);
};
return self;
}
}());
如果您有更多问题,请随时与我联系。同时尝试角度风格指南https://github.com/johnpapa/angular-styleguide它会对你有很大的帮助。