Mam usługę w Angular, która używa mojego interfejsu API, aby uzyskać informacje o użytkowniku i udostępnia je moim kontrolerom. To skonfigurować tak:Wymuszenie usługi AngularJS w celu zwrócenia danych przed załadowaniem kontrolera
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
W moich kontrolerów, ja to nie podoba:
function userProfile($scope, $cookies, userInfo, $http, $resource, $routeParams, $rootScope){
$scope.user = userInfo;
console.log('user info is')
console.log(userInfo);
Ten wraca żadnych danych, a jeśli mogę umieścić taką samą funkcję serwisową w samym kontrolerze zwraca tylko w porządku. Czego tu mi brakuje? Nigdy nie używano DI/usług w Angular, więc może to być zwykły błąd.
Muszę się upewnić, że usługa zwraca dane przed sterownika ładuje. W jaki sposób można to osiągnąć?
można uprościć konsolę.logs w ten sposób: 'console.log (" informacja użytkownika jest ", userInfo);' –
@EddieMongeJr naprawdę? nie miałem pojęcia, dzięki. – Jascination