4

我有以下 JSON(简单示例):

{
  id:        101,
  firstName: "John",
  surname:   "Doe"
}

但我希望我的模型使用lastName而不是surname. 像这样的东西,也许:

App.Person = DS.Model.extend({
  firstName: DS.attr('string'),
  lastName:  DS.attr('string', { key: 'surname' })
});

我可以发誓我在某个地方看到了一些东西,展示了如何做到这一点,但是对于我的生活,找不到它。我在 ember-data 源中也没有发现任何明显的东西。

我已经尝试在属性选项中设置key, name, id, alias, 和map,但似乎没有一个可以解决问题。有没有办法做到这一点?

4

1 回答 1

7

您应该能够通过REST Adapter做到这一点。该文档包括一个在带下划线的属性名称下映射“不规则键”的示例:

不规则的键可以映射到适配器上。如果 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' }
});

还可能值得注意的是,Ember 期望 JSON 具有first_name而模型具有firstName. 因此,这可能还需要明确调整

于 2013-03-05T00:44:22.503 回答