2

有谁知道最近是否有骆驼属性的问题。

我有一个这样的模型:

var attr = DS.attr;

App.Users = DS.Model.extend({
    firstName: attr('string'),
    phone: attr('string'),
    email: attr('string')
});

在我的模板中,电子邮件和电话正确显示,但名字没有出现。我检查了 json 文件,一切似乎都很好。对于我所有的其他模型,都会出现同样的问题,所以我想它必须与 camelCase 做一些事情。

4

1 回答 1

8

弃用通知:这个答案是从 2013 年开始的,直到现在还没有被修改过。这不反映 JSON API 适配器,而是反映 Ember-Data 的 RESTAdapter。

Ember.js 依赖于命名约定,它期望多单词驼峰式(例如)模型属性映射到JSON 响应上的firstName多单词下划线分隔小写属性(例如)。first_name如果您的 JSON 提供给您,或者在您无法firstName控制后端 API的情况下提供任何不在此约定中的内容,您可以选择定义一个告诉您的适配器在 JSON 响应和映射中查找特定键的选项它到给定模型中的属性。map

你可以这样做:

DS.RESTAdapter.map('App.User', { 
    firstName: { key: 'firstName' },
    lastName: { key: 'familyName' }
});

请注意,在上面的示例中,我添加了一个lastName不属于您自己的模型的属性。我这样做只是为了清楚地表明您可以同时映射多个属性,并且它在 JSON 响应中的名称可以是任何名称,不一定是不同大小写中的相同名称。

于 2013-03-21T16:32:17.887 回答