当数据添加到mongodb时,发布/订阅不会自动工作

时间:2015-12-07 18:26:18

标签: angularjs meteor angular-meteor

我有以下发布商和订阅者代码。

它在应用程序启动时首次运行,但是当我尝试将数据直接插入Mongo数据库时,它不会自动更新用户屏幕,或者我没有看到警报弹出。

我错过了什么吗?

发布

Meteor.publish('userConnections', function(){
    if(!this.userId){
       return;
    }
    return Connections.find({userId: this.userId});
})

订阅

$scope.$meteorSubscribe('userConnections').then(function () {
    var userContacts = $scope.$meteorCollection(Connections);
     alert("subscriber userConnections is called");
    if (userContacts && userContacts[0]) {
         ....
    }
}, false);

1 个答案:

答案 0 :(得分:0)

首先,如果你没有使用角度流星1.3你应该是。 API已经更改很多。 $ meteorSubscribe已被弃用!

要直接回答您的问题,$ meteorSubscribe是一个在订阅准备就绪时得到解决的承诺(仅一次)。所以,它只会被调用一次。如果您查看documentation for subscribe,您将通过将其分配给范围变量来了解如何进行绑定"被动"。在你的情况下,它将是这样的:

$scope.userContacts = $scope.$meteorCollection(Connections);

这样做,当集合更新时,$ scope.userContacts也应该更新。