AngularJS中的雙向綁定是指數據模型($ scope)和您的視圖(指令)。例如,如果數據在您的模型中發生變化,視圖將自動更新。同樣,如果用戶修改視圖中的數據,您的模型將自動更新。
通過$ http服務模塊與Web服務進行交互。所以從您的RESTful API獲取數據,你會做這樣的事情:
$http.get('/someUrl').success(successCallback);
完整文檔的$ HTTP是在AngularJS site。我想你會發現它與jQuery的$ .ajax方法非常相似。您可以使用angular的$ timeout服務(基本上是setTimeout的包裝)輕鬆設置$ http.get()進行短輪詢。
對於AngularJS客戶端和服務器API之間的實時更新,您可能需要查看Socket.io。它使用node.js在瀏覽器和服務器之間創建一個活動套接字連接,併爲舊版瀏覽器提供回退機制(flash,long-polling)。有在GitHub上一個樣板項目,演示瞭如何建立AngularJS與Socket.io: https://github.com/btford/angular-socket-io-seed
重述一遍:
數據是否雙向綁定功能意味着角($資源或 $ http)每n秒自動從服務器獲取數據?
不,雙向綁定是在Angular模型和視圖之間。
它自然使用長輪詢,短輪詢還是websocket?
Angular在默認情況下不包括這些中的任何一個。你必須自己設置它們。
您是否需要JQuery來實現服務器 - 客戶端同步,還是一切都可以通過Angular完成?
$ HTTP是,在廣義上,jQuery的的角相當於$就
你必須添加額外的代碼,以使這種行爲發生的呢?我需要使用$超時嗎?
使用$ timeout進行短輪詢,或者爲長輪詢和/或websocket使用自己的解決方案(請參閱angular-socket-io-seed項目)。
Angular不管理客戶端/服務器synchornization。如果你想定期輪詢後端,你需要自己寫。爲了方便起見,你可以使用$ timeout(所以更新發生在摘要循環中),但是你必須在你自己的代碼中進行範圍更新。 – Jollymorphic 2013-03-14 18:13:24