Я пытаюсь постоянно обновлять контроллер, используя службу опроса. У меня есть служба, работающая, и я могу проверить, что это опрос и получение новых данных. Я не могу работать, это обновление контроллера, использующего эту службу.Служба опроса AngularJS не постоянно обновляет контроллер
Вот что у меня есть:
cadApp.controller('statsController', function ($scope, DashboardStats) {
$scope.data = DashboardStats.data.response;
console.log(JSON.stringify(DashboardStats.data.response));
});
cadApp.run(function (DashboardStats) { });
cadApp.factory('DashboardStats', function ($http, $timeout) {
$http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
var data = { response: {}, calls: 0 };
var url = "Ajax/CADAjax.aspx";
var params = { "Command": "GetDashboardStats" };
var poller = function() {
$http.post(url, Object.toparams(params))
.then(function (responseData) {
data.response = responseData.data[0];
// This is working
console.log(JSON.stringify(responseData.data[0]));
data.calls++;
$timeout(poller, 10000);
});
};
poller();
return {
data: data
};
});
Интерфейс никогда не обновляется с текущим объектом, возвращенного службой опроса. Я предполагаю, что оператор return в сервисе неверен. Он возвращает только в основном пустой объект, объявленный в верхней части службы.
Как мне получить услугу, чтобы автоматически обновлять контроллер всякий раз, когда возвращается ответ HTTP?
Отлично! Я благодарю тебя. Я занимаюсь несколькими часами в использовании Angular, и я люблю его, просто нужно освободиться от привычек потока jQuery. Смешно то, что я как раз собирался прокомментировать, что он работал, за исключением недостающего индекса [0] этого массива JSON, который возвращается. Вы отредактировали свой пост слишком быстро, чтобы я мог комментировать :) Еще раз спасибо! –
@tymeJV Почему вы советуете, чтобы логика тайм-аута содержалась в коде контроллера, а не в сервисе? Я пытаюсь определить наилучшую практику опроса с угловым. – defaultcheckbox