我在尋求JSON響應方面越來越近了。在這個例子中,事件變量在返回後填充,導致空白輸出。我需要它等待。我已經讀過,承諾是要走的路......但不知道如何工作...在我的console.log中,你可以看到數組,但Events.all();返回null。在angularjs工廠等待json響應
.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);
})
做您的端點數據有返回單個事件的能力,當發送ID控制器?或者你是將所有文件存儲在一個文件中? – charlietfl
它只是來自服務器的一個響應。我可以讓服務器做任何我想做的事情,但是如果我硬編碼事件變量,這會起作用,但是由於http.get是異步的,它會在後臺觸發並且在Events.all被調用之前沒有完成。這是一種可移動的離子應用。 –