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