javascript - ember 序列化程序上的动态主键
问题描述
我正在尝试动态设置primaryKey
ember seializer。可能吗?
这是我可以从服务器获得的响应
account: {iban: "ibanValue", currency : "currencyValue"} or {bban: "bbanValue"}
灰烬代码:
import DS from 'ember-data';
import ApplicationSerializer from './application';
const {
EmbeddedRecordsMixin,
} = DS;
export default ApplicationSerializer.extend(EmbeddedRecordsMixin, {
primaryKey: 'iban'
});
我设置iban
为主键,但也可以bban
。如何根据需要将其中一个设置为主键?
解决方案
Ember 数据是一个框架,所有框架都有自己的规则。这是为处理数据而开发的,因此它对您的数据信息施加了一些结构。这些规则之一是所有实体(模型)都必须具有id
属性。这实际上是所有信息系统的一个很好的实践。也就是说,你必须决定你想用什么作为一个id
,如果由于一些非常奇怪的原因你有两个不同的属性可以作为id
一个,解决这个问题的最好方法是在服务器端处理它。在您的数据中添加一个新id
属性,然后在从 REST API返回数据之前,您可以决定要id
为特定记录使用什么,并通过将其值复制到id
财产。这样,ember 数据将始终可以id
使用。
推荐阅读
- javascript - 如何将来自后端的有效负载响应重新格式化为所需的格式?
- r - 如何在 knitr_kable 对象上加上括号
- java - 第二个 Scanner 对象的输入与类型不匹配..?
- woocommerce - 我将购物车和结帐页面合并为一个现在迷你购物车不更新金额
- node.js - Passport 未根据要求公开 login() 函数
- java - 没有@EnableAsync,@Async 是否可以工作
- google-cloud-firestore - 您可以在 Firestore 中隐藏集合组查询的父 ID 信息吗?
- amazon-web-services - 允许 Stripe webhook 访问 AWS EC2 实例
- ubuntu - 如何在 vscode ubuntu 20.04 中显示表情符号?
- node.js - 无法通过匹配 _id 更新 MongoDB 集合