【发布时间】:2014-03-08 15:56:16
【问题描述】:
我在控制器中有以下代码:
FirebaseService.$child('tasks').$on('loaded', function(tasks) {
console.log('tasks loaded');
FirebaseService.$child('taskTemplates').$on('loaded', function(taskTemplates) {
console.log('taskTemplates loaded');
});
});
控制台只显示tasks loaded,第二个console.log 永远不会执行。如果我按顺序请求这些孩子(taskTemplates 的请求不在加载的回调中),它可以无缝工作。这种奇怪的行为有什么原因吗?
一些背景信息:加载任务时,我需要对它们进行检查,在某些情况下——而且只有这样——我想加载任务模板。
这是我的 FirebaseService,如果有帮助的话:
app
.value('FIREBASE_URL', 'XXXXXXXXXXXX.firebaseIO.com/')
.service('FirebaseService', function($firebase, FIREBASE_URL) {
return $firebase(new Firebase(FIREBASE_URL));
});
非常感谢您的帮助!
【问题讨论】:
-
为什么要麻烦嵌套调用loaded?当父数据加载时,它已经包含所有子数据,因此子数据已经加载。
-
好吧,
tasks是taskTemplates的兄弟——那还适用吗? -
我误解了,以为您在
tasks对象上调用 $child。问题撤回!
标签: javascript angularjs firebase angularfire