我尝试在ember seializer上动态设置primaryKey
。是否可能?
下面是我可以从服务器获得的响应
account: {iban: "ibanValue", currency : "currencyValue"} or {bban: "bbanValue"}
ember代码:
import DS from 'ember-data';
import ApplicationSerializer from './application';
const {
EmbeddedRecordsMixin,
} = DS;
export default ApplicationSerializer.extend(EmbeddedRecordsMixin, {
primaryKey: 'iban'
});
我设置了iban
作为主键,但它也可以是bban
。我如何根据需要将其中一个设置为主键?
1条答案
按热度按时间nfeuvbwi1#
Ember数据是一个框架,所有的框架都有自己的规则。这个框架是为了处理数据而开发的,所以它对数据信息施加了一些结构。其中一个规则是所有的实体(models)必须有一个
id
属性。这实际上对于所有的信息系统来说都是一个很好的实践。也就是说,你必须决定你想用什么作为id
,如果因为一些非常奇怪的原因,你有两个不同的属性可以作为id
,解决这个问题的最好方法是在服务器端处理它。在数据中添加一个新的id
属性,然后从 REST API 返回数据您可以决定要将什么用作特定记录的id
,并通过将其值复制到id
属性来显式地执行此操作。这样,ember数据将始终有它的id
可供使用。