我有以下发布商和订阅者代码。
它在应用程序启动时首次运行,但是当我尝试将数据直接插入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);
答案 0 :(得分:0)
首先,如果你没有使用角度流星1.3你应该是。 API已经更改很多。 $ meteorSubscribe已被弃用!
要直接回答您的问题,$ meteorSubscribe是一个在订阅准备就绪时得到解决的承诺(仅一次)。所以,它只会被调用一次。如果您查看documentation for subscribe,您将通过将其分配给范围变量来了解如何进行绑定"被动"。在你的情况下,它将是这样的:
$scope.userContacts = $scope.$meteorCollection(Connections);
这样做,当集合更新时,$ scope.userContacts也应该更新。