首页 > 解决方案 > ember 序列化程序上的动态主键

问题描述

我正在尝试动态设置primaryKeyember 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。如何根据需要将其中一个设置为主键?

标签: javascriptember.jsember-data

解决方案


Ember 数据是一个框架,所有框架都有自己的规则。这是为处理数据而开发的,因此它对您的数据信息施加了一些结构。这些规则之一是所有实体(模型)都必须具有id属性。这实际上是所有信息系统的一个很好的实践。也就是说,你必须决定你想用什么作为一个id,如果由于一些非常奇怪的原因你有两个不同的属性可以作为id一个,解决这个问题的最好方法是在服务器端处理它。在您的数据中添加一个新id属性,然后在从 REST API返回数据之前,您可以决定要id为特定记录使用什么,并通过将其值复制到id财产。这样,ember 数据将始终可以id使用。


推荐阅读