我在收藏方面遇到问题。
仅在客户端为空。请参阅以下已被删除的内容:
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);
}
我可以从服务器代码看到正确的结果,但从客户端看不到。我错过了什么?
最佳答案
假设您尚未删除自动发布
或者您正在正确发布和订阅,则您可能会在客户端代码从服务器接收到数据之前运行客户端代码。试试这个:
if (Meteor.isClient) {
Deps.autorun(function() {
var result = MyCollection.find({name: 'MyName'}, {limit: 25}).fetch();
console.log(result);
});
}
您可能会在客户端上记录一个空结果,随后不久就会出现正确的结果(在客户端收到数据并重新运行自动运行函数之后)。
关于客户端 meteor 集合为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23316511/