0

データ オブジェクトを取得するために暗黙的な方法を使用しました。

setData = function(segment){
  var url = 'https://myFireBase.firebaseio.com/';
  var rawData = angularFire(url+segment,$rootScope,'data',{});
  rawData.then(function(data){
    // sorting and adjusting data, and then broadcasting and/or assinging
  }
}

このコードは、さまざまな場所から呼び出されるサービス内にあり、開発段階ではおそらく 100 ~ 150 程度になるため、コントローラーからサービスに移行しましたが、firebase のデータ バインディングによって明らかに上書きされます。 s が異なるsegmentので、明示的なメソッドに戻り、さまざまな firebase がデータバインディングと相互の上書きではなく、データをサイトに送信するだけになるようにしました。

var rawData = angularFireCollection(url+segment);

そして、そもそもなぜ暗黙的を選択したのかを発見しました。typeof には引数があり、文字列、配列、オブジェクトなどを呼び出しているかどうかを firebase に伝えることができました。angularfire.js と引数が指定されていない場合は、デフォルトで配列として識別するようにフォールバックすることがわかりました。

さて、私は間違いなく明示的な方法に移行するつもりです (つまり、angular2.0 に救済がない場合)。配列のみのポリシーに適合するように私の firebase json を再構築することは、それほど大きな問題ではありませんが、確かにオブジェクトを明示的に呼び出すオプション、または何か不足していますか?

4

1 に答える 1

1

問題が何であるかは完全にはわかりません.angularFireCollectionを使用すると、オブジェクトを問題なく取得できます. たとえば、バンドルされているチャット アプリ ( https://github.com/firebase/angularFire/blob/gh-pages/examples/chat/app.js#L5 ) では:

$scope.messages = angularFireCollection(new Firebase(url).limit(50));

各メッセージは、 によって生成された独自の一意のキーを持つオブジェクトとして格納されますpush()

また、アプリが成長するにつれて、暗黙的な方法を使用しているときにどのような問題が見つかったのかについても興味があります。angularFire の次のイテレーションで、このような問題に対処したいと考えています。

于 2013-06-08T01:30:05.960 に答える