我数据库中的所有表都有唯一的主键,它是通过将单个表名与“_id”连接而创建的。例如表“users”中的“phrase_id”或表“users”中的“user_id”。
Ember要求在json结果中使用“id”作为主键。我设法通过设置自定义ApplicationSerializer来覆盖它:
App.ApplicationSerializer = DS.RESTSerializer.extend({
primaryKey: 'phrase_id'
});
无论如何,当我需要每个模型的自定义键时,该解决方案将为所有模型设置新的id键。我怎么解决这个问题?我想我需要创建一些匿名函数,它将根据模型名称动态创建primaryKey,但是如何将模型名称绑定到该函数?
App.ApplicationSerializer = DS.RESTSerializer.extend({
primaryKey: function() {
return modelName+'_id';
}
});
答案 0 :(得分:1)
我认为为每种模型类型声明序列化器是最简单的。
App.UserSerializer = DS.RESTSerializer.extend({
primaryKey: 'user_id'
});
App.PhraseSerializer = DS.RESTSerializer.extend({
primaryKey: 'phrase_id'
});
这是很多样板代码,但它非常简单,正如托尼·霍普金森所说,你真的不想过多地与Ember.js作战。