次のマップに従うネストされたコレクションa
、b
、およびがあるとします。c
{"collection":"a",
"children":[{"collection":"b",
"name":"bee",
"children"[{"collection":"c","name":"cee"}]}]}
そしてa1
、これはMongoDbデータベースからフェッチされたものです$http
:
{"title":"title a1",
"id":"a1",
"bee":[{"id":"b1"},{"id":"b2"}],
"other_array":[{"foo":"bar"},{"foo":"baz"}]}
現在、bee
配列には参照 ( id
) しかありません。必要なのは、マップをたどって更新a1
し、参照を実際のデータに置き換えることです。
データベースからのフェッチb1
とb2
データが必要になり、それぞれが配列を持ち、その要素をコレクションcee
からフェッチする必要があります。c
専用のバックエンド関数を簡単に作成できると思いますa1
.
a1
しかし、複数の $http/$resource 呼び出しを使用して、完全に詳細なバージョンを取得するにはどうすればよいでしょうか?
再帰関数を使用する必要がありますか?
それとも、$q とチェーンされた promise を使用するのが最善でしょうか?
マップをたどる方法 (関連するコレクションとその名前を知るため)、関連するアイテムを取得しb
、次に関連するアイテムを取得しc
、最後に updateを次a1
のように置き換えa1
ます。
{"title":"title a1","id":"a1","bee":[{"id":"b1","title":"title b1","other_stuff":"blah blah","cee":[{"id":"c1","title":"title c1","c_specific":"hi there"}]},{"id":"b2","title":"title b2","other_stuff":null,"cee":[]}],"other_array":[{"foo":"bar"},{"foo":"baz"}]}