我一直在搞乱流星7.1.1。 只需要一些健全检查,
所以基本上......
if (Meteor.isServer) {
console.log("Count Server No: "+ Meteor.users.find().count());
Meteor.publish("directory", function () {
return Meteor.users.find();
});
}
// server side results in Count Server No: 1
if (Meteor.isClient) {
Meteor.subscribe("directory");
console.log("Count Client No: " + Meteor.users.find().count());
}
// client returns Count Client No: 0
我已经看过各种教程和其他可能的路线,但似乎有各种方法可以做到这一点。如果有人可以指出。非常感激。 PS希望这有助于某人。
答案 0 :(得分:2)
客户端和服务器上的集合在订阅时不会立即同步,而是在后台异步同步。 订阅对象具有函数ready()
,如果已将初始批量数据发送到客户端,则返回true
。
此外,onReady
和onError
事件的subscription can take callbacks during definition。例如,仅提供 onReady 处理程序:
Meteor.subscribe("directory", function () {
alert('Count = ' + Meteor.users.find().count());
});
应显示正确的用户数。