我想我偶然发现了 emberjs 中的一个错误,但在我指出它是一个错误之前,我想知道我是否一开始没有做错任何事情。我有一个艺术家列表(假设是“主”视图),当用户单击“阅读更多”链接时,他/她可以查看有关该特定艺术家的详细信息。为了使我的网址更具可读性,我正在使用“slug”(序列化)。
这是我的路由器的样子:
App.Router.map(function(){
this.resource('artists', function(){
this.resource('artist', {path:':artist_id'});
});
});
这就是我的路线的样子:
App.ArtistsRoute = Ember.Route.extend({
model: function() {
return App.Artist.find();
}
});
App.ArtistRoute = Ember.Route.extend({
enter: function(){
console.log("ENTER: Artistroute");
},
serialize: function(model, params) {
return { artist_id: model.get('slug') };
}
});
现在,当用户单击艺术家姓名时,问题就开始了,然后在插座中呈现详细的艺术家信息。由于某种原因,概览列表会使用空的艺术家条目进行更新。
当我注释掉以下几行时,问题就消失了:
/*
serialize: function(model, params) {
return { artist_id: model.get('slug') };
},
*/
这是用户单击“阅读更多”链接之前和之后实现的序列化挂钩的屏幕截图:
如您所见,突然有两个额外的艺术家对象被创建并添加到概览列表中。为什么会这样?