在AngularJS中,双向绑定指的是数据模型($scope)和视图(directives)之间的关系。例如,如果数据模型发生了变化,视图会自动更新。同样地,如果用户修改了视图中的数据,数据模型也会自动更新。
通过$http服务模块与Web服务进行交互。因此,要从RESTful API获取数据,你需要执行以下操作:
$http.get('/someUrl').success(successCallback);
完整的$http文档请查看AngularJS站点。我认为您会发现它与jQuery的$.ajax方法非常相似。您可以使用angular的$timeout服务(基本上是setTimeout的包装器)轻松设置 $http.get() 以进行短轮询。
对于AngularJS客户端和服务器API之间的实时更新,您可能需要了解一下Socket.io。它使用node.js创建浏览器和服务器之间的实时套接字连接,并具有针对旧版浏览器的回退机制(flash,长轮询)。在GitHub上有一个样板项目展示了如何配置带有Socket.io的AngularJS:https://github.com/btford/angular-socket-io-seed
总结一下:
双向数据绑定功能是否意味着Angular ($resource 或 $http)每隔n秒自动从服务器获取数据?
不是,双向绑定是在Angular模型和视图之间实现的。
它自然使用长轮询、短轮询还是WebSockets?
Angular默认没有包含这些内容。您必须自己进行设置。
是否需要JQuery才能实现服务器-客户端同步,还是一切都可以用Angular完成?
$http在广义上相当于jQuery的$.ajax。
是否需要添加额外的代码才能实现此行为?我需要使用$timeout吗?
对于短轮询,请使用$timeout,或者针对长轮询和/或WebSockets制定您自己的解决方案(请参见angular-socket-io-seed项目)。