Ember.js 使用Store.pushPayload和#x27;t保存器有很多关系

Ember.js 使用Store.pushPayload和#x27;t保存器有很多关系,ember.js,ember-data,Ember.js,Ember Data,我正在使用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"}, {"

我正在使用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”端没有填充,并且为空。嗯…

D'oh!事实证明,我无法使用CoffeeScript“for/in”循环迭代关系,因为它不是普通数组


使用“forEach”方法进行迭代;数据一直在那里,我只是不知道如何获取它…

您使用的是活动模型适配器/序列化程序吗?正如我在编辑中提到的,这实际上并不能解决我的问题,因为我在关系的“belongsTo”端仍然得到空值!您是否尝试过在各省使用城市而不是城市ID作为密钥?