EmberJS 不填充驼峰式属性
EmberJS doesn't populate camelCased attributes
EmberJS 出于某种原因不会填充以驼峰命名法编写的模型属性。我使用 JSONAPIAdapter(RESTAdapter 不是一个选项)。
这是我的模型:
import DS from 'ember-data';
export default DS.Model.extend({
shortName: DS.attr('string'),
fullName: DS.attr('string'),
inn: DS.attr('string'),
kpp: DS.attr('string'),
checkingAccount: DS.attr('string'),
correspodentAccount: DS.attr('string'),
bik: DS.attr('string'),
});
我的把手模板:
{{#each model as |company|}}
<tr class="companies-list__item">
<td class="companies-list__property">{{company.shortName}}</td>
<td class="companies-list__property">{{company.inn}}</td>
<td class="companies-list__property">{{company.kpp}}</td>
<td class="companies-list__property">{{company.checkingAccount}}</td>
<td class="companies-list__property">{{company.correspodentAccount}}</td>
<td class="companies-list__property">{{company.bik}}</td>
</tr>
{{/each}}
来自服务器的答案如下所示:
{
type: 'company',
id: 4,
attributes: {
shortName: 'Рога и копыта',
fullName: 'ООО Рога и копыта',
inn: '312312312',
kpp: '767675572',
checkingAccount: '3123145124',
correspodentAccount: '6547598',
bik: '76979356'
},
},
它确实填充了 inn、kpp、bik,但不使用其他的。有什么问题吗?
当使用 JSONAPIAdapter/Serializer 时,我认为 JSON 负载中属性的默认值是破折号(kabob-case)。请参阅 https://guides.emberjs.com/v2.10.0/models/customizing-serializers/ 您可能需要进行一些自定义。
Ember.js 依赖于命名约定,它希望将多词驼峰式(例如 firstName)模型属性映射到多词下划线分隔的小写属性(例如first_name) 在 JSON 响应中。如果你的 JSON 给你名字,或者在你不控制后端 API 的情况下不在此约定中的任何东西,你可以选择定义一个映射,告诉你的适配器看对于 JSON 响应中的特定键并将其映射到给定模型中的 属性。
你可以这样做:
DS.RESTAdapter.map('App.User', {
shortName: { key: 'shortName' },
fullName: { key: 'fullName' }
});
EmberJS 出于某种原因不会填充以驼峰命名法编写的模型属性。我使用 JSONAPIAdapter(RESTAdapter 不是一个选项)。 这是我的模型:
import DS from 'ember-data';
export default DS.Model.extend({
shortName: DS.attr('string'),
fullName: DS.attr('string'),
inn: DS.attr('string'),
kpp: DS.attr('string'),
checkingAccount: DS.attr('string'),
correspodentAccount: DS.attr('string'),
bik: DS.attr('string'),
});
我的把手模板:
{{#each model as |company|}}
<tr class="companies-list__item">
<td class="companies-list__property">{{company.shortName}}</td>
<td class="companies-list__property">{{company.inn}}</td>
<td class="companies-list__property">{{company.kpp}}</td>
<td class="companies-list__property">{{company.checkingAccount}}</td>
<td class="companies-list__property">{{company.correspodentAccount}}</td>
<td class="companies-list__property">{{company.bik}}</td>
</tr>
{{/each}}
来自服务器的答案如下所示:
{
type: 'company',
id: 4,
attributes: {
shortName: 'Рога и копыта',
fullName: 'ООО Рога и копыта',
inn: '312312312',
kpp: '767675572',
checkingAccount: '3123145124',
correspodentAccount: '6547598',
bik: '76979356'
},
},
它确实填充了 inn、kpp、bik,但不使用其他的。有什么问题吗?
当使用 JSONAPIAdapter/Serializer 时,我认为 JSON 负载中属性的默认值是破折号(kabob-case)。请参阅 https://guides.emberjs.com/v2.10.0/models/customizing-serializers/ 您可能需要进行一些自定义。
Ember.js 依赖于命名约定,它希望将多词驼峰式(例如 firstName)模型属性映射到多词下划线分隔的小写属性(例如first_name) 在 JSON 响应中。如果你的 JSON 给你名字,或者在你不控制后端 API 的情况下不在此约定中的任何东西,你可以选择定义一个映射,告诉你的适配器看对于 JSON 响应中的特定键并将其映射到给定模型中的 属性。
你可以这样做:
DS.RESTAdapter.map('App.User', {
shortName: { key: 'shortName' },
fullName: { key: 'fullName' }
});