У меня есть служба в Angular, которая использует мой API для получения информации о пользователе и предоставляет ее моим контроллерам. Он настраивается следующим образом:
angular.module('myApp', ['myApp.filters', 'myApp.services', 'myApp.directives', 'ngResource', 'infinite-scroll', 'ui.bootstrap', 'ngCookies', 'seo'])
.service('userInfo', function($http, $cookies){
$http.get('/api/users/' + $cookies.id).
success(function(data) {
var userInfo = data.user[0];
return userInfo;
});
}). // other stuff comes after this
В моих контроллерах я включаю его как:
function userProfile($scope, $cookies, userInfo, $http, $resource, $routeParams, $rootScope){
$scope.user = userInfo;
console.log('user info is')
console.log(userInfo);
Это не возвращает никаких данных, а если я поместил одну и ту же служебную функцию в сам контроллер, она вернется просто отлично. Что мне здесь не хватает? Никогда не использовались DI/Services в Angular, прежде чем это может быть простой ошибкой где-то.
Мне нужно убедиться, что служба возвращает данные до, которые загружаются контроллером. Как это можно сделать?