これから変換するために、よりクリーンな URL にスラッグ URL を使用しています。
これに:
問題は、直接スラッグ URL ( http://mydomain.com/#/posts/first-awesome-post )を介してページに直接アクセスすると、代わりに空白のページが表示されることです。
ここに私が持っているものがあります:
App.Router.map(function() {
this.resource('posts', function() {
this.resource('post', { path: ':post_id' });
});
});
App.Post.FIXTURES = [{
id: 1,
name: 'First Awesome Post',
slug: 'first-awesome-post'
}];
App.PostRoute = Em.Route.extend({
model: function(params) {
return App.Post.find(params.post_id);
},
setupController: function(controller, model) {
this._super.apply(this, arguments);
},
serialize: function(model, params) {
return { post_id: model.get('slug')};
},
});
私は次のことを試しました:
- に置き換え
params.post_id
て、次の URL をブラウザに入力しApp.PostRouter
ましたhttp://mydomain.com/#/posts/first-awesome-post ; 結果: ページ CSS と HTML はロードされますが、ID #1 のデータはロードされませんでした (つまり、モデル フックは呼び出されません)。params.post_slug
- シリアル化機能を取り除き、ブラウザに次の URL を入力しましたhttp://mydomain.com/#/posts/1 ; 結果: すべて正常に動作します (CSS、HTML、およびデータが完全に読み込まれました)
この場合、私が何を間違っていたかを知ることができますか?
PS私は現在EmberJSバージョン1.0.0-rc.6を使用しています