db 값을 수동으로 변경하고 내 컨트롤러가 10 초마다 API를 쿼리하도록하여 서버 폴링을 시뮬레이션합니다. 모든 것이 작동하지만 DB가 변경되면 뷰의 값이 0으로 변경된 후 값을 변경해야합니다.AngularJS Long Polling - 번호가 0으로 변경된 다음 버그가 발생 함
컨트롤러보기에서
messageControllers.controller('NavigationCtrl', ['$scope', '$routeParams', 'Message', '$timeout',
function ($scope, $routeParams, Message, $timeout) {
var messages = Message.query({ type:'inbox' });
$scope.inbox = messages;
var poll = function() {
$timeout(function() {
var messages = Message.query({ type:'inbox' });
$scope.inbox = messages;
poll();
}, 10000);
};
poll();
}]);
발췌문
<li><a data-ng-href="#/">Inbox <span class="badge"><% (inbox|filter:{read:false}).length %></span></a></li>
예를 들어, read==false
결과의 수가 5이면 db가 변경되고 read==false
결과의 수는 6이됩니다. <% (inbox|filter:{read:false}).length %>
대신 6이 바로 변경되면 0이 먼저 변경됩니다.
각도로 잡기 만하면되고, 내가 멍청한 짓을하는 것을 정말로 이해하지 못한다.
AngularJS가 데이터를 기다리는 동안 나는 (inbox|filter:{read:false}).length
의 바운드 값과 관련이 있다는 느낌이 들지만, $ scope.inbox가 Message를 한 번만 변경하도록 변경하는 방법은 잘 모릅니다. 쿼리가 완료되었습니다.