Ember: 序列化任意哈希键名
Ember: Serialize arbitrary hash key names
在我的 model
中,我有一个任意散列 (DS.attr()
),其属性以破折号形式返回。例如,
{
'lorem-ipsum': 'Some value',
'dolor-sit': 'Some value'
}
我希望键名采用驼峰式命名。我怎样才能做到这一点?
是的,你可以写下你的custom transform。
在 ember-cli
中使用 ember g transform my-custom-transform
。
然后你写DS.attr('my-custom-transform')
.
您可以(并且应该)为您的数据请求使用自定义序列化程序。
例如:
$ ember g serializer application
创建:
app/serializers/application.js
如果您的服务器返回的属性使用不同的约定,您可以使用序列化程序的 keyForAttribute() 方法将模型中的属性名称转换为 JSON 有效负载中的键。
在您的情况下,如果您的后端返回的属性是破折号而不是驼峰式,您可以像这样覆盖 keyForAttribute 方法。
// app/serializers/application.js
import { camelize } from '@ember/string';
import DS from 'ember-data';
export default DS.JSONAPISerializer.extend({
keyForAttribute(attr) {
return camelize(attr);
}
});
找到更多关于此的信息
在我的 model
中,我有一个任意散列 (DS.attr()
),其属性以破折号形式返回。例如,
{
'lorem-ipsum': 'Some value',
'dolor-sit': 'Some value'
}
我希望键名采用驼峰式命名。我怎样才能做到这一点?
是的,你可以写下你的custom transform。
在 ember-cli
中使用 ember g transform my-custom-transform
。
然后你写DS.attr('my-custom-transform')
.
您可以(并且应该)为您的数据请求使用自定义序列化程序。
例如:
$ ember g serializer application
创建:
app/serializers/application.js
如果您的服务器返回的属性使用不同的约定,您可以使用序列化程序的 keyForAttribute() 方法将模型中的属性名称转换为 JSON 有效负载中的键。
在您的情况下,如果您的后端返回的属性是破折号而不是驼峰式,您可以像这样覆盖 keyForAttribute 方法。
// app/serializers/application.js
import { camelize } from '@ember/string';
import DS from 'ember-data';
export default DS.JSONAPISerializer.extend({
keyForAttribute(attr) {
return camelize(attr);
}
});
找到更多关于此的信息