6

私はfirebaseが初めてです。angularjs でビルドしたいのですが、angularfire を見つけました。

angularFireのドキュメントには、暗黙的および明示的な同期がリストされています。github のドキュメントを理解しようとしましたが、違いと使用方法がわかりません。 angularFire()angularFireCollection()

angularFire()また、との引数の意味は何angularFireCollection()ですか?

前もって感謝します

4

1 に答える 1

19

暗黙的な同期が必要な場合に使用angularFireします。つまり、モデルに加えられた変更は、他のすべてのクライアントに即座に反映されます (逆も同様です)。

angularFireCollectionローカル データの変更をいつサーバーに送信する必要があるかを制御したい場合に使用します。リモートで変更を加えると、ローカル コレクションが自動的に更新されます。

暗黙の同期:

myapp.controller('MyCtrl', ['$scope', 'angularFire',
  function MyCtrl($scope, angularFire) {
    var promise = angularFire(url, $scope, 'items', []);
  }
]);

最初の引数は、データを保存/取得する Firebase の場所です。2 番目の引数はスコープ、3 番目の引数は $scope の下のプロパティの名前で、Promise が満たされるとすぐにデータをバインドします。例えば:

promise.then(function() {
  // Data available in $scope.items
});

4 番目の引数は、JS オブジェクトに必要なデータの型です。[]配列、{}オブジェクト、""文字列、1数値、およびtrueブール値に使用します。指定された Firebase の場所にデータが存在しない場合は、この引数を使用してデフォルト値を設定することもできます。

暗黙的な同期では$scope.items、変更を加えるだけで変更が Firebase 経由で他のすべてのクライアントと自動的に同期されます。同様に、リモートで行われた変更は自動的に更新されます$scope.items

明示的な同期:

myapp.controller('MyCtrl', ['$scope', 'angularFireCollection',
  function MyCtrl($scope, angularFireCollection) {
    $scope.items = angularFireCollection(url);
  }
]);

このメソッドは引数を 1 つだけ取ります。項目を追加または削除する場合はaddremoveまたはupdateメソッドを使用します。例えば:

$scope.items.add({test: "object"});

スコープを必要としないためangularFireCollection、コントローラの外部で Firebase を使用したい場合 (angular ディレクティブ、モジュールなど) にもこれを使用できます。

于 2013-05-24T17:02:22.967 に答える