ember.js - Ember:序列化任意哈希键名
问题描述
在我的model
我有一个任意的散列(DS.attr()
),其属性以虚线形式返回。例子,
{
'lorem-ipsum': 'Some value',
'dolor-sit': 'Some value'
}
我希望键名是驼峰式的。我怎样才能做到这一点?
解决方案
您可以(并且应该)为您的数据请求使用自定义序列化程序。
例如:
$ ember g serializer application
创建:
app/serializers/application.js
如果您的服务器返回的属性使用不同的约定,您可以使用序列化程序的 keyForAttribute() 方法将模型中的属性名称转换为 JSON 有效负载中的键。
在您的情况下,如果您的后端返回的是 dasherized 而不是 camelCased 的属性,您可以像这样覆盖 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);
}
});
推荐阅读
- php - Magento 502 Bad Gateway - Pdo/Abstract
- c# - c#:无法推断类型参数
- salesforce - 有没有办法创建类似于kafka的“消费者组”的故障转移机制?
- javascript - 为什么当我在地图上绘制要素时 Select 函数被触发?
- amazon-web-services - 我听说使用弹性 IP 通常被认为是糟糕的架构设计。为什么这样 ?为什么不建议使用弹性 IP?
- javascript - 如何在浏览器中打开 Redux Toolkit 的生产模式?
- html - 提交以前的表单时如何生成新的rails表单
- bash - 会不会出现flock 命令最终陷入僵局的情况?
- javascript - Ajax 调用函数 - 有条件地触发 Facebook 像素并重定向到感谢页面
- android - 无法更新回收站视图