AngularJS를 배우려고합니다. 매초마다 새 데이터를 얻으려는 첫 번째 시도가 효과가있었습니다.
'use strict';
function dataCtrl($scope, $http, $timeout) {
$scope.data = [];
(function tick() {
$http.get('api/changingData').success(function (data) {
$scope.data = data;
$timeout(tick, 1000);
});
})();
};
5 초 동안 스레드를 휴면하여 느린 서버를 시뮬레이션하면 UI를 업데이트하고 다른 시간 제한을 설정하기 전에 응답을 기다립니다. 문제는 모듈 생성을 위해 Angular 모듈과 DI를 사용하도록 위의 내용을 다시 작성할 때입니다.
'use strict';
angular.module('datacat', ['dataServices']);
angular.module('dataServices', ['ngResource']).
factory('Data', function ($resource) {
return $resource('api/changingData', {}, {
query: { method: 'GET', params: {}, isArray: true }
});
});
function dataCtrl($scope, $timeout, Data) {
$scope.data = [];
(function tick() {
$scope.data = Data.query();
$timeout(tick, 1000);
})();
};
이것은 서버 응답이 빠른 경우에만 작동합니다. 지연이 발생하면 응답을 기다리지 않고 1 초에 1 번의 요청을 스팸 처리하고 UI를 지우는 것처럼 보입니다. 콜백 함수를 사용해야한다고 생각합니다. 나는 시도했다 :
var x = Data.get({}, function () { });
하지만 오류가 발생했습니다. "오류 : destination.push는 함수가 아닙니다." $ resource 했지만 실제로 예제를 이해하지 못했습니다.
두 번째 접근 방식은 어떻게 작동합니까?