AngularJS:管理DOM的正确方法

时间:2014-08-19 23:09:03

标签: javascript angularjs

我仍然很有棱角分明,我想知道什么是正确的'解决这个问题的方法。假设后端有eventsattendees。我希望界面能够按attendees显示事件和顺序。这很容易在后端完成(我应该在数据库中order_by还是在客户端排序?)。 attendees的顺序和数量需要不断更新。这就是我要做的事情

app.js

var eventApp = angular.module('eventApp',[]);

eventApp.controller("eventController", ['$scope', '$http', '$interval', function($scope, $http, $interval){
    $scope.events = null;
    var get_events = function(){
        var promise = // make GET call to server, server returns list of events ordered by attendees
        promise.success(function(data, status, headers, config){
            $scope.events = data.questions; // this part seems bad....
        }
    $interval(get_events, 1000);
}])

然后在html中,我希望事件呈现

EventPage.html
<!-- pretend we are in the appropriate app and controller -->
<div ng-for="event in events">
      <p> {{ events.name }} - {{ events.attendee_count }} </p>
</div>

这只是看错了,我可以看到服务和指令可能有用,但它们对我来说仍然是相当外国的概念。想知道这样做的好方法是什么,每秒重写$scope.events似乎......糟糕......

1 个答案:

答案 0 :(得分:0)

如果您不希望每秒重新创建$ scope.events,则一种方法是将事件添加到$ scope.events(如果它们是新的),并删除事件(如果它们在响应中不再存在)。

但是如果您尝试每秒发出一次HTTP请求以使事件保持最新,您可能需要考虑使用更基于事件的更新事件列表的方法,例如websocket。