私は emberjs のバグに出くわしたと思いますが、それをバグとして指摘する前に、そもそも私が何も悪いことをしていないかどうかを知りたいです。私はアーティストのリスト(「マスター」ビューとしましょう)を持っており、ユーザーが「もっと読む」リンクをクリックすると、その特定のアーティストに関する詳細情報が表示されます。URL を読みやすくするために、「スラッグ」(シリアル化) を使用しています。
これは私のルーターがどのように見えるかです:
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') };
},
*/
これは、ユーザーが「続きを読む」リンクをクリックする前後に実装されたシリアル化フックでどのように見えるかのスクリーンショットです。
ご覧のとおり、突然 2 つの追加のアーティスト オブジェクトが作成され、概要リストに追加されています。なぜこうなった?