【发布时间】:2013-08-30 22:12:14
【问题描述】:
我在 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);
这不会返回任何数据,而如果我将相同的服务函数放在控制器本身中,它会返回很好。我在这里想念什么?以前从未在 Angular 中使用过 DI/Services,所以在某处可能是一个简单的错误。
我需要确保服务在控制器加载之前返回数据。这个怎么实现
【问题讨论】:
-
你可以像这样简化你的 console.logs:
console.log('user info is ', userInfo); -
@EddieMongeJr 真的吗?不知道,谢谢。
标签: javascript angularjs angularjs-service