我仍然很有棱角分明,我想知道什么是正确的'解决这个问题的方法。假设后端有events
和attendees
。我希望界面能够按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
似乎......糟糕......
答案 0 :(得分:0)
如果您不希望每秒重新创建$ scope.events,则一种方法是将事件添加到$ scope.events(如果它们是新的),并删除事件(如果它们在响应中不再存在)。
但是如果您尝试每秒发出一次HTTP请求以使事件保持最新,您可能需要考虑使用更基于事件的更新事件列表的方法,例如websocket。