0

「:albumid」と呼ばれる動的セグメントを持つルートをember.jsで取得した場合、ビュー内からこれにアクセスするにはどうすればよいですか?

Ember.Route.extend({
    route: "/:albumid"
})

パラメータは次のように設定されます。

gotoAlbum = function(r,e) {
    router.transitionTo("album", {albumid: StuffThatReturnsTheAlbumid});
}
4

1 に答える 1

-1

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);
  }
})
于 2012-09-14T16:21:42.387 に答える