「:albumid」と呼ばれる動的セグメントを持つルートをember.jsで取得した場合、ビュー内からこれにアクセスするにはどうすればよいですか?
Ember.Route.extend({
route: "/:albumid"
})
パラメータは次のように設定されます。
gotoAlbum = function(r,e) {
router.transitionTo("album", {albumid: StuffThatReturnsTheAlbumid});
}
「:albumid」と呼ばれる動的セグメントを持つルートをember.jsで取得した場合、ビュー内からこれにアクセスするにはどうすればよいですか?
Ember.Route.extend({
route: "/:albumid"
})
パラメータは次のように設定されます。
gotoAlbum = function(r,e) {
router.transitionTo("album", {albumid: StuffThatReturnsTheAlbumid});
}
deserialize()
コンテキストオブジェクトを返すには、ルートのメソッドでalbumidパラメータを使用する必要があります。connectOutlets()
このコンテキストは、ルートに渡されます。内部でconnectOutlets()
は、コンテキストをコントローラーやビューに渡すことができます。
以下の例では、content
プロパティがに渡されるコンテキストになるように設定されたAlbumControllerが作成されconnectOutlets()
ます。AlbumViewも作成され、コントローラーのcontent
:にアクセスできるようになります。
Ember.Route.extend({
route: "/:albumid",
serialize: function(router, context){
return {albumid: context.get('albumid')};
},
deserialize: function(router, params){
// return a context object that will be passed into connectOutlets()
return App.store.find(App.Album, params.albumid);
},
connectOutlets: function(router, context) {
// context comes from deserialize(), and will be passed in as the
// content property for AlbumController
router.get('albumsController').connectOutlet('album', context);
}
})