AngularJoob here。我正在构建一个需要每秒轮询一次url的应用程序,并持久地存储这些数据,因为它需要被多个视图/控制器访问。AngularJS - 投入持久数据存储
我所做的处理是将我的http请求放入工厂,并通过工厂中的函数将数据提供给控制器。我现在遇到的问题是工厂函数在http请求之前被调用,导致我的应用程序出现错误。
下面是代码:
App.factory('metrics', function($http){
var service;
var users = [{laps:[]}];
var updateMetrics = function(){
//updates the users array in the factory
};
$http.get('data.csv').success(function(data) {
var temp_array = data.split(" ");
updateMetrics(0, temp_array);
});
service.lastLapInfo = function(){
var lastlap = [];
for (var i=0; i<users.length;i++)
{
var lap = users[i].laps[users[i].laps.length-1];
lastlap.push(lap);
}
return lastlap;
};
return service;
});
App.controller('mainController', function($scope, $http, metrics) {
$scope.users=metrics.lastLapInfo();
});
lastLapInfo(),这是导致错误,因为是阵列中没有数据的HTTP请求之前获取调用。有什么想法吗?
此外 - 如果我通常会遇到错误的方式来满足我的使用案例(例如,我应该使用别的东西而不是工厂)让我知道!
做的东西在成功回调中,当你真正拥有数据时。 – dandavis 2014-10-10 22:04:18