我正在使用DS.Store的“pushPayload”方法在我的应用程序启动时预加载一些记录。
有效负载处于正确的“规范化”形式:
示例:
{"provinces":[
{"id":1,"name":"Ontario","city_ids":[1,2,3]}
],
"cities":[
{"id":1,"name":"Toronto","slug":"toronto"},
{"id":2,"name":"Hamilton","slug":"hamilton"},
{"id":3,"name":"Waterloo","slug":"waterloo"}
]}
Chrome的Ember Inspector告诉我,我的省和城市都已加载,因为它们显示了数据标签。
但是,在我的某个省份对象上执行像province.get('cities')之类的操作会返回一个空的DS.ManyArray。
这让我相信,虽然城市已被加载,但他们的引用并未正确连接,或需要刷新。我怎样才能确保这种情况发生,各省都有对各自城市的引用(反之亦然)?当然,我在模型文件中设置了正确的DS.hasMany和DS.belongsTo关系。
编辑:因此,虽然我可以访问“hasMany”方面的关系,但“belongsTo”方面没有填充,并且为空。嗯...
答案 0 :(得分:2)
D'哦!事实证明我无法使用CoffeeScript“for / in”循环迭代关系,因为它不是普通数组。
使用“forEach”方法迭代工作;数据一直存在,我只是不知道如何去做...