我有以下JSON(简单示例):
{
id: 101,
firstName: "John",
surname: "Doe"
}
但我希望我的模型使用lastName
代替surname
。这样的事情,也许是:
App.Person = DS.Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string', { key: 'surname' })
});
我可以发誓我在某个地方看到了如何做到这一点,但对于我的生活,却找不到它。我也没有在余烬数据源中找到任何明显的东西。
我尝试在属性选项中设置key
,name
,id
,alias
和map
,但似乎都没有做到这一点。有没有办法做到这一点?
答案 0 :(得分:7)
您应该可以通过The REST Adapter执行此操作。该文档包含在Underscored Attribute Names下映射“不规则键”的示例:
可以在适配器上映射不规则键。如果JSON的密钥为
lastNameOfPerson
,并且所需的属性名称只是lastName
,请通知适配器:App.Person = DS.Model.extend({ lastName: DS.attr('string') }); DS.RESTAdapter.map('App.Person', { lastName: { key: 'lastNameOfPerson' } });
在你的情况下:
DS.RESTAdapter.map('App.Person', {
lastName: { key: 'surname' }
});
值得注意的是,当模型具有first_name
时,Ember期望JSON具有firstName
。因此,这可能还需要明确地改编。