각도를 익히기 위해, & Codeigniter 나는 (CI로부터) 새로운 초기 튜토리얼을 확장했다. 현재 단계에서는 자동으로 새 게시물을 표시합니다 & 페이지에서 삭제 된 게시물을 제거합니다 물론 & 물론 모델/DB를 업데이트하십시오. - 나는 이것을 AngularJS에게 가장 효과적인 방법이라고 생각하지 않습니다. 내 코드에 대한 피드백이 도움이 될 것입니다. -AngularJS에서의 실시간 업데이트
그러나 내 관심사는 각도로 차등 업데이트하는 방법은 무엇입니까? jQuery를 통해이 작업을 완료했을 때 간단히 ajax url에 타임 스탬프를 추가했습니다. 그런 다음 컨트롤러에서 그 시간을 잡아 & 변수에 할당 & 다른 게시물을 가져 오기 위해 비교를 수행하십시오. 그것은 훌륭하게 작동했습니다. 새로운 이야기를 끌어낼뿐입니다 (존재하는 경우). 존재하지 않으면 많은 오버 헤드가 발생하지 않습니다.
그러나 Angular에서는 요청할 때마다 (매 5 초마다) 전체 JSON 데이터를 가져옵니다. 대규모 앱의 경우 과도한 대역폭을 소비합니다. 어떻게 차별화하고 새 게시물 만 가져올 수 있습니까?
controllers.js (각 컨트롤러)
var timestamp = '';
function NewsListCtrl($scope, $http, $timeout) {
$scope.newsRequest = function(){
$http.get('/ci/index.php/news/get_news_ajax/' + timestamp).success(function(data) {
timestamp = $.now();
$scope.news = data;
});
};
$scope.newsRequest();
setInterval(function(){
$scope.$apply(function(){
$scope.newsRequest();
});
}, 5000);
}
위의 코드가 성공적으로 (CodeIgniter의에 따라 3)를 URL의 세번째 세그먼트에 시간을 전달합니다. 페이지가 처음로드되면 모든 게시물이 나타납니다. 그런 다음 newsRequest()가 다시 발생하면 빈 페이지가 표시됩니다. 새로운 게시물이 없기 때문에 $ array.news에 빈 배열을 할당한다고 가정합니다. 새로운 게시물이 추가되도록 어떻게 수정해야합니까?
은 (그리고 같은 난 내가 최대한 반복 겨 AngularJS와 활용하고 있지 않다 생각했다. 누군가가 더 나은 솔루션이있는 경우, 가르치 려주세요!)
좋은 아이디어. 하지만 제대로 구현하지 못했습니다. 나열한대로 처리하면 $ scope.news가 정의되지 않았다고 말하는 오류가 발생합니다. 어떻게 올바르게 구현할 수 있습니까? – EnigmaRM