【发布时间】:2015-10-10 00:52:33
【问题描述】:
我越来越接近寻求 JSON 响应。在此示例中, events 变量在返回后被填充,导致空白输出。我需要它等待。我已经读过一个承诺是要走的路......但不确定它是如何工作的......在我的console.log中你可以看到数组但是Events.all();返回 null。
.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 时返回单个事件?还是您将所有内容存储在一个文件中?
-
它只是来自服务器的一个响应。我可以让服务器做任何我想做的事情,但是如果我对事件变量进行硬编码,这会起作用,但由于 http.get 是异步的,它会在后台触发,并且在调用 Events.all 之前不会完成。这是一个移动离子应用程序。
标签: json angularjs asynchronous