有点难过。我的路线中有一个模型钩子,如下:
return hash({
people: this.store.findAll('person'),
positions: {}
})
我最后操纵一些数据并在以后填充positions
对象,我的afterModel
。在我填充之后,我尝试迭代每个模型。当我迭代people
时:
model.people.forEach((person) => {
console.log("Im a person.");
})
//I'm a person
但是当我迭代职位时:
model.positions.forEach((position) => {
console.log("position");
})
没有记录。错误说 model.positions.forEach不是函数。
如果,在positions
上方的迭代之上,我记录get(model, 'forecasts')
,它会正确记录并显然填充了我的记录。所以我知道我不会迭代一个空对象。我猜我形成这些物体的方式是不同的?如果您有兴趣,请按以下方式填写positions
:
this.get('owner.organizations').forEach((organization) => {
this.store.queryRecord('position'), {}.then((position) => {
set(model.positions, organization.get('id'), position)
})
})
答案 0 :(得分:0)
感谢所有指出我试图错误地迭代一个对象的人 - 这很令人尴尬但却是真的。就这一点而言,基本问题是当我试图迭代它时positions
对象实际上没有被填充。由于一些Chrome检查器的怪癖(传递值和传递引用之间的差异),当我在控制台上记录它时,它似乎已填充;但是,当我添加一个调试器时,很明显它在那时是空的。总有一天,我会在这上花半天时间感觉更好:/