【发布时间】:2014-04-25 22:09:05
【问题描述】:
首先,对不起,我是一个完整的 javascript 菜鸟,我更像是一个 PHP 人,正在测试流星框架。
我正在尝试遍历对象集合并尝试从另一个集合中添加属性:
Template.host.hosts = function() {
var hosts = Hosts.find();
hosts.forEach(function(host) {
host.lastPing = Pings.findOne({id: host.id}, {sort: {timestamp : -1}});
// This works fine
// console.log(host.lastPing.id);
});
for (host in hosts) {
// This results in "TypeError: Cannot read property 'id' of undefined"
console.log(host.lastPing.id);
}
return hosts;
};
我不明白为什么第二个 console.log 不起作用。
我尝试过搜索,但我不知道问题是特定于流星处理集合的方式,还是我应该向 javascript 对象添加属性或完全不相关的方式(范围等...)
我已经简化了我的问题以试图了解正在发生的事情,我真正的问题显然是按照以下方式在模板中循环:
{{#each hosts}}
{{this.lastPing.id}}
{{/each}}
谢谢
【问题讨论】:
标签: javascript collections meteor