流星集合空客户端

时间:2014-04-26 21:06:44

标签: meteor

我遇到了一个集合问题。

仅在客户端显示为空。请参阅以下已被删除的内容:

MyCollection = new Meteor.Collection("mycollection");

if (Meteor.isServer) {
    var result = MyCollection.find({name: 'MyName'}, {limit: 25}).fetch();
    console.log(result);
}

if (Meteor.isClient) {
    var result = MyCollection.find({name: 'MyName'}, {limit: 25}).fetch();
    console.log(result);
}

我可以从服务器代码中看到结果是正确的,但不是客户端。我错过了什么?

1 个答案:

答案 0 :(得分:1)

假设您尚未删除autopublish或者您正在发布和订阅,那么您可能在从服务器接收数据之前运行客户端代码。试试这个:

if (Meteor.isClient) {
  Deps.autorun(function() {
    var result = MyCollection.find({name: 'MyName'}, {limit: 25}).fetch();
    console.log(result);
  });
}

您可能会在客户端上记录一个空结果,然后是正确的结果(在客户端收到数据并重新运行自动运行功能之后)。