您有几种选择…
您可以使用
$timeout
和进行每X毫秒的轮询$http
,或者如果您使用的数据已连接到REST服务,则可以使用$resource
代替$http
。您可以创建一个使用某些Websocket实现并用于
scope.$apply
处理套接字推送的更改的服务。这是使用socket.io(一个node.js websocket库)的示例:
myApp.factory('Socket', function($rootScope) { var socket = io.connect('http://localhost:3000'); //Override socket.on to $apply the changes to angular return { on: function(eventName, fn) { socket.on(eventName, function(data) { $rootScope.$apply(function() { fn(data); }); }); }, emit: socket.emit }; }) function MyCtrl($scope, Socket) { Socket.on('content:changed', function(data) { $scope.data = data; }); $scope.submitContent = function() { socket.emit('content:changed', $scope.data); }; }- 您可以获得真正的高科技,并创建一个Websocket实现,该实现将Angular模型与服务器同步。当客户端更改某些内容时,该更改将自动发送到服务器。或者,如果服务器发生更改,它将被发送到客户端。
这里,再次使用socket.io在老版本的角度的一个例子:https://github.com/mhevery/angular-node-
socketio
编辑 :对于#3,我一直在使用Firebase来做到这一点。



