如何让ember知道我希望它通过slug
而不是id
来唯一地查找记录。
在我的路线模型中,我可以做这样的事情
model: function(params) {
return this.store.find('anime', params.anime_slug);
},
serialize: function(anime) {
return { anime_slug: anime.get('anime_slug') };
},
但每当我打电话给model.reload()
时,它会尝试重新加载记录的ID,而不是记录的slu ..那么如何让ember知道唯一标识记录使用anime_slug
而非id
。
答案 0 :(得分:0)
你几乎就在那里!
<强>路线:强>
App.AnimeRoute = Em.Route.extend({
model: function(params) {
return this.store.find('anime', { anime_slug: params.anime_slug }).then(function(results) {
return results.objectAt(0);
});
},
serialize: function(model) {
return { anime_slug: model.get('anime_slug') };
},
});
请注意对模型方法的更改。
<强>路由器:强>
App.Router.map(function() {
this.resource('anime', { path: '/anime/:anime_slug' });
});