假设您有嵌套的集合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 和链式承诺?
如何遍历地图(了解哪些集合是相关的,以及它们的名称),检索相关b项目,然后是相关c项目,最后更新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"}]}