У меня есть два модуля в узле/экспресс-/ угловом приложении, порядке и пользователям. В модуле пользователя у меня очень простой сервис:AngularJS + NodeJS - Ошибка при вызове вложенной службы
angular.module('users').factory('UsersRest', ['$q', '$log', '$http',
function($q, $log, $http) {
var getUserInfo = function(userid) {
var deferred = $q.defer();
$http.get('/proxy/rest/user/'+ userid).
success(function(data, status, headers, config) {
var userdetail = data;
deferred.resolve(userdetail);
});
return deferred.promise;
};
// public API
return {
getUserInfo: getUserInfo
};
}
]);
Я бы хотел использовать эту услугу в своем модуле заказа. Поэтому, когда я зарегистрировать модуль заказа я использую
ApplicationConfiguration.registerModule('order', ['users']);
и в другой службе в моем модуле заказа я называю его с помощью
angular.module('order').factory('OrderService', ['$q','$http','$log', 'UsersRest',
function($q,$http,$log, UsersRest) {
// stuff
var update = function(order_request){
var userdetail = UsersRest.getUserInfo(window.user.id).then(function (data) {
$log.info('information about user retrieved.');
return data;
});
// some other stuff
};
// Public API
return {
update: update
};
}
]);
Но когда я пытаюсь это, я получаю следующее сообщение об ошибке:
Error: [$injector:unpr] Unknown provider: UsersRestProvider <- UsersRest <- OrderService
http://errors.angularjs.org/1.4.3/$injector/unpr?p0=UsersRestProvider%20%3C-%20UsersRest%20%3C-<section data-ui-view="" class="ng-scope" data-ng-animate="1">rderService
at REGEX_STRING_REGEXP (http://localhost:3000/lib/angular/angular.js:68:12)
at http://localhost:3000/lib/angular/angular.js:4262:19
at Object.getService [as get] (http://localhost:3000/lib/angular/angular.js:4409:39)
at http://localhost:3000/lib/angular/angular.js:4267:45
at getService (http://localhost:3000/lib/angular/angular.js:4409:39)
at Object.invoke (http://localhost:3000/lib/angular/angular.js:4441:13)
at Object.enforcedReturnValue [as $get] (http://localhost:3000/lib/angular/angular.js:4303:37)
at Object.invoke (http://localhost:3000/lib/angular/angular.js:4450:17)
at http://localhost:3000/lib/angular/angular.js:4268:37
at getService (http://localhost:3000/lib/angular/angular.js:4409:39)
В чем дело? Является ли проблема инъекций?
EDIT Вот как зарегистрировать модуль пользователей:
ApplicationConfiguration.registerModule('users',['tmh.dynamicLocale']);
Эта ошибка подразумевает, что «OrderService» не знает, что такое «ПользователиRest», убедитесь, что модули правильно зарегистрированы/созданы. – Manatax
Просьба включить регистрацию модуля пользователей. – Manatax
Не уверен в настройке вашего файла, но если эти заводы находятся в отдельных файлах, они включены в ваш index.html? –