AngularJSの双方向バインディングは、データモデル($ scope)とビュー(ディレクティブ)を参照します。たとえば、モデルのデータが変更されると、ビューは自動的に更新されます。同様に、ユーザーがビューのデータを変更すると、モデルが自動的に更新されます。
Webサービスとの対話は、$httpサービスモジュールを介して行われます。したがって、RESTful APIからデータを取得するには、次のようにします。
$http.get('/someUrl').success(successCallback);
$ httpの完全なドキュメントは、AngularJSサイトにあります。jQueryの$.ajaxメソッドと非常によく似ていることがわかると思います。Angularの$timeoutサービス(基本的にはsetTimeoutのラッパー)を使用して、ショートポーリング用に$ http.get()を簡単に設定できます。
AngularJSクライアントとサーバーAPI間のリアルタイムの更新については、Socket.ioを調べることをお勧めします。node.jsを使用して、ブラウザーとサーバー間のライブソケット接続を作成し、古いブラウザー用のフォールバックメカニズム(フラッシュ、ロングポーリング)を備えています。GitHubには、Socket.ioを使用してAngularJSをセットアップする方法を示す定型プロジェクトがあります:
https ://github.com/btford/angular-socket-io-seed
要点をまとめると:
双方向のデータバインディング機能は、Angular($resourceまたは$http)がn秒ごとにサーバーからデータを自動的にフェッチすることを意味しますか?
いいえ、双方向バインディングはAngularモデルとビューの間にあります。
当然、長いポーリング、短いポーリング、またはWebSocketを使用しますか?
Angularには、デフォルトではこれらのいずれも含まれていません。自分で設定する必要があります。
サーバーとクライアントの同期を実現するためにJQueryが必要ですか、それともすべてをAngularで実行できますか?
$ httpは、広義には、jQueryの$.ajaxに相当するAngularです。
この動作を実現するには、コードを追加する必要がありますか?$ timeoutを使用する必要がありますか?
短いポーリングには$timeoutを使用するか、長いポーリングやWebSocketには独自のソリューションをロールします(angular-socket-io-seedプロジェクトを参照)。