1

问题 1:为什么需要 ember-data 修订版 11 属性名称的下划线版本?

问题 2:如果属性名称相同(没有下划线),是否有问题?

灰烬链接http ://emberjs.com/guides/models/the-rest-adapter/

该模型

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

    isPersonOfTheYear: DS.attr('boolean')
});

JSON

{
   "person": {
        "first_name": "Barack",
        "last_name": "Obama",
        "is_person_of_the_year": true
    }
}

映射

App.Person = DS.Model.extend({
    lastName: DS.attr('string')
});
DS.RESTAdapter.map('App.Person', {
    lastName: { key: 'lastNameOfPerson' }
});

感谢所有响应者!:)

4

1 回答 1

3

问题1:在 JS 中使用驼峰式属性是一个惯例。对于 JSON 有效负载,请参阅此JSON 命名约定

不确定是否理解您的第二个问题。

问题2:

如果你想保持你的 JSON 格式,你可以在序列化器的代码中解释 2 个选项https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/serializer.js# L58

  • map使用适配器的API重新映射它们
  • 您可以通过实现来确定序列化表单中使用的属性名称keyForAttributeName

在您的情况下,您可能希望拥有自己的从RESTSerializer. 见https://github.com/emberjs/data/blob/master/packages/ember-data/lib/serializers/rest_serializer.js#L4

keyForAttributeName只会返回字符串。

于 2013-03-20T21:33:09.130 回答