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 也应该更新。
我有以下发布者和订阅者代码。
它在应用程序启动时首次运行,但当我尝试将数据直接插入 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 也应该更新。