【发布时间】:2014-01-20 01:26:40
【问题描述】:
我有一个名为 GameMaps 的集合,定义如下:
GameMaps = new Meteor.Collection('gameMaps');
此集合中的条目如下所示:
{
name: 'foo',
structure: {
arg1: 'bar',
fields: [
{name: 'someName', value: 'someValue'},
{name: 'someOtherName', value: 'someOtherValue'}
]
}
}
现在在服务器上,我可以通过以下方式访问结构的第一个字段:
GameMaps.findOne({name: 'foo'}).structure.fields[0]
按预期返回此对象:
{name: 'someName', value: 'someValue'}
但是当我尝试在客户端上执行相同的操作时,我得到一个空对象:
Object {}
我的收藏出版物如下所示:
Meteor.publish('allMaps', function() {
return GameMaps.find();
});
还有这样的订阅:
Meteor.subscribe('allMaps');
在客户端上,除了“fields”数组中的对象之外,我可以看到此集合项的所有内容。我什至看到“字段”数组中的项目数量,但无法访问它们。我想我在发布收藏集时遗漏了一些东西,但我看不到什么。
【问题讨论】:
-
如果您将名称
fields更改为其他名称会怎样? -
能否也显示定义集合的代码?另外,您将订阅命令放入自动运行块中是否有原因?
-
您如何访问这些?您是否等待订阅完成?如果你尝试在你的 js 控制台中访问它,它会不会做同样的事情?
-
@ChristianF 我相应地更新了我的问题。
-
我也无法重现该问题 (my code)。
标签: javascript meteor