Angular noob здесь. Я создаю приложение, которое нужно опросить 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, который вызывает ошибки, поскольку нет никаких данных в массиве. Есть предположения?
Дополнительно - если я вообще ошибаюсь, чтобы удовлетворить мой прецедент (например, я должен использовать что-то другое вместо Factory), дайте мне знать!
делает этот материал в обратном вызове успеха, когда у вас действительно есть данные. – dandavis