我想从带有angularjs的REST后端服务器检索表数据。数据改变了第二个。我想使用angularjs来刷新数据,因为它实时变化。如何才能做到这一点?我是否强制angularjs以固定的时间间隔进行ajax调用以刷新数据显示?
答案 0 :(得分:2)
您必须使用民意调查或推送策略。但是,由于您已经知道资源会定期更改,因此应该足以设置重复超时,以便应用程序每秒轮询REST服务器上的资源。检索后,AngularJS会更新视图。所以,是的,你必须强制AngularJS来调用服务。
答案 1 :(得分:2)
是的,使用REST,然后没有其他方式进行轮询。要在浏览器视图中刷新数据本身,您可以在服务中使用$rootScope.$apply()
(我假设您正在使用服务来获取数据),首先必须注入$rootScope
的依赖关系。当然。
修改强>
实际上你不应该使用$rootScope.$apply()
,因为它可能导致丑陋的$digest in progress
错误。而是使用
$timeout(function(){
// set data here...
})
改进提示如果您对轮询不满意,并且您已编程后端或有能力进行更改,则: 尝试使用 WebSockets :
然后,当服务器可用时,服务器可以随时将数据推送出去。服务器端实现取决于您使用的后端,但现在大多数后端框架/服务器也支持websockets。