Я приближаюсь к своему поиску ответа JSON. В этом примере переменная событий заполняется ПОСЛЕ возврата, что приводит к пустым выводам. Мне нужно, чтобы он подождал. Я прочитал, что обещание - это путь ... но не знаю, как это будет работать ... в моем console.log вы можете увидеть массив, но Events.all(); возвращает null.Ожидание ответа json в фабрике angularjs
.factory('Events', function($http) {
var events="";
$http.get('http://appserver.falconinet.com/events.lasso').then(function(resp) {
events = resp.data;
console.log(events);
}, function(err) {
console.error('ERR', err);
// err.status will contain the status code
})
return {
all: function() {
return events;
},
get: function(eventId) {
for (var i = 0; i < events.length; i++) {
if (events[i].id === parseInt(eventId)) {
return events[i];
}
}
return null;
}
}
})
и вот мой контроллер:
// events
.controller('EventsCtrl', function($scope, Events) {
$scope.events = Events.all();
})
.controller('EventDetailCtrl', function($scope, $stateParams, Events) {
$scope.event = Events.get($stateParams.eventId);
})
делает вашу конечную точку имеет возможность возвращать одно событие, когда идентификатор отправляются? Или вы сохраняете все в одном файле? – charlietfl
его только один ответ от сервера. Я могу сделать сервер делать все, что захочу, но это работает, если я жестко программирую переменную события, но поскольку http.get асинхронен, он срабатывает в фоновом режиме, а не заканчивается до вызова Event.all. Это мобильное ионное приложение. –