将主键与Ember数据一起使用

Ben*_*ter 14 ember.js ember-data

过去几天我一直在用主键和最后一个版本的Ember Data 苦苦挣扎.

我首先阅读了如何在GitHub上的Breaking Changes文件中执行此操作,但它显然已经过时了.我尝试 其他 几种方法(借助Peter Wagenet在IRC上的帮助),但它们似乎都没有用.

我想slug在我的模型上制作我的主键,而且由于我正在使用MongoDB,我想用_id而不是id.

有没有人想出怎么做?我的根本问题是当我App.MyModel.find()在模型上做几个时,模型记录被加载两次.

Kin*_*n2k 9

从Ember Data 1.0 beta开始,您可以primaryKey在相应的序列化程序上定义.

对于整个应用程序

App.ApplicationSerializer = DS.RESTSerializer.extend({
  primaryKey: '_id'
});
Run Code Online (Sandbox Code Playgroud)

对于单一类型

App.FooSerializer = DS.RESTSerializer.extend({
  primaryKey: '_id'
});
Run Code Online (Sandbox Code Playgroud)

您仍将id在模型上引用它,但Ember Data会_id在传输过程中将其序列化/反序列化.

示例:http://emberjs.jsbin.com/OxIDiVU/635/edit

在这里阅读更多相关信息:http://emberjs.com/api/data/classes/DS.RESTSerializer.html#property_primaryKey