如果我在ember.js中有一条路线,其中有一个名为“:albumid”的动态片段,我如何从视图中访问它?
Ember.Route.extend({
route: "/:albumid"
})
参数设置如下:
gotoAlbum = function(r,e) {
router.transitionTo("album", {albumid: StuffThatReturnsTheAlbumid});
}
答案 0 :(得分:-1)
您需要在路由的deserialize()
方法中使用albumid参数来返回上下文对象。此上下文将传递到您的路线的connectOutlets()
。在connectOutlets()
中,您可以将上下文传递给控制器和/或视图。
在下面的示例中,将创建一个AlbumController,其中content
属性设置为传递到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);
}
})