Publish/Subscribe 将数据添加到 mongodb 后无法自动工作

Publish/Subscribe not working automatically when data added to the mongodb

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

它在应用程序启动时首次运行,但当我尝试将数据直接插入 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);

首先,如果您没有使用 angular-meteor 1.3,您应该使用。 API 已经 改变了很多。 $meteorSubscribe 已被弃用!

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

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

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