为什么订阅源订阅仅在第一个“添加子”事件时更新UI绑定而不是之后?

时间:2016-10-12 01:46:21

标签: angularjs firebase firebase-realtime-database

场景/问题:

  • 尝试重现Firebase的friendlyPix演示(samples page),但作为Angular 1应用。
  • home feed列出a)当前用户创建的所有帖子b)和/或他/她 关注用户
  • 我可以在创建(实时)后发布所有新帖子,以便在用户和用户关注的每个实时新帖子中更新Firebase实时数据库中的Feed。
  • 问题我无法在第一次实时新帖后更新ui(查看),或者换句话说,在第一次{{1}之后在这种情况下,} event to child_added)。所以它显示了第一个实时/现场新帖子,但没有显示。
  • 此外,/feed/${this.currentUser.uid}/方法中的console.log表示每次都会在承诺中解析结果。但是控制器没有收到要更新_subscribeToHomeFeed数组的数据。

//路由器的解析属性

//这实际上是在ui-router resolve属性

vm.newPosts

// HomeController相关代码

    _pixData: (friendlyFire)  => {
      friendlyFire.showHomeFeed().then(...{
            // see notes in method
            // returns _pixData for home feed _pixData[1] being the latestEntryId

        });
}

服务方法(friendlyFire)

.controller('HomeController', HomeController);

function HomeController(friendlyFire, _pixData) {
    vm.pixData = _pixData[0];  
    vm.latestEntryId = _pixData[1]; // data received from the promise of showHomeFeed method
    vm.newPosts = [];

    friendlyFire.subscribeToHomeFeed(vm.latestEntryId).then((postData) => {
        console.log(postData.key, 'post key');
        console.log(postData.val(), 'post value');

        var a = postData.key;
        var b = postData.val();
        vm.newPosts.push({'post key':a, 'post value': b});
    });
}

0 个答案:

没有答案