为了学习Angular & Codeigniter我已经扩展了最初的新教程(来自CI)。在当前阶段,它会自动显示新帖子&从页面&中删除已删除的帖子当然会更新模型/数据库。 - 我认为我没有为AngularJS做这个最有效的方法。对我的代码的反馈会对此有所帮助。 -AngularJS中的实时更新
不过,我主要关心的是如何在Angular中做差异更新? 当我通过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);
}
上面的代码(根据笨第三)成功通过一次进URL的第三分段。最初加载页面时,将显示所有帖子。然后在newsRequest()再次触发后,我得到一个空白页面。我假设因为没有更新的帖子,它将空数组赋给我的$ scope.news。 我该如何解决这个问题,以便追加更新的帖子?
(就像我说的,我想我不会趁着AngularJS NG-重复,以最充分的。如果有人有更好的解决办法,请赐教!)
好主意。但我无法正确执行它。按照您列出的方式进行操作会给我一个错误,说明_ $ scope.news是undefined_。我将如何正确实施? – EnigmaRM 2013-03-15 21:19:08