首先,对一个完整的javascript noob感到抱歉,我更像是一个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}}
感谢
非常感谢Hosts.update做的窍门,我将不得不再次阅读这篇详细的文章几次才能完全理解。 – Purplefish32