我是ember js的新手,我有一个json对ember模型的回应
{:login_fields=>
[
{:component=>"ns4:FieldInfoComponent",
:id=>1,
:fieldinfos=>
[{:fieldInfoObj=>"FieldInfoSingle", :id=>2, :login_field_id=>1}],
:fieldinfo_ids=>[2]},
{:component=>"ns4:FieldInfoComponent",
:id=>2,
:fieldinfos=>
[{:fieldInfoObj=>"FieldInfoSingle", :id=>2, :login_field_id=>2}],
:fieldinfo_ids=>[2]}
]
}
emberjs的loginField模型:
App.LoginField = DS.Model.extend
component: DS.attr 'string'
fieldinfos: DS.hasMany('App.Fieldinfo')
FieldInfo模型:
App.Fieldinfo = DS.Model.extend
login_field: DS.belongsTo 'App.LoginField'
fieldInfoObj: DS.attr 'string'
我得到的ember响应包含loginfield模型的字段和正确值,并且还将它与fieldinfo模型相关联,但fieldinfo的数据显示为 Object {id =“2”,clientId = 5,data =“加载”,更多...} 为什么我没有得到has_many模型的实际数据?
答案 0 :(得分:0)
来自Ember docs about model relationships:
JSON应该将关系编码为ID数组:
{
"post": {
"comments": [1, 2, 3]
}
}
然后sideloaded如果您想在一个请求中获取所有信息:
{
"post": {
"id": 1,
"title": "Node is not omakase",
"comments": [1, 2, 3]
},
"comments": [{
"id": 1,
"body": "But is it _lightweight_ omakase?"
},
{
"id": 2,
"body": "I for one welcome our new omakase overlords"
},
{
"id": 3,
"body": "Put me on the fast track to a delicious dinner"
}]
}
你的json的问题是Ember期望field_infos
是一个id数组,对你来说它是实际的对象。然后,为了解决这个问题,field_infos
是一个fieldInfoObjs数组。哇,真有趣!
如果您对json有任何控制权,我建议您将其更改为更符合what EmberData expects。
如果您无法控制传入的JSON,请对此答案发表评论,我可以尝试引导您使用您需要的资源。