2012-09-14 41 views
0

如果我在ember.js中有一個名爲「:albumid」的動態段的路由,我如何從視圖中訪問它?訪問來自視圖的動態路由參數 - ember.js

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

參數設置如下:

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

回答

-1

你需要使用ALBUMID PARAM在路線的deserialize()方法返回一個上下文對象。該上下文將被傳遞到您的路線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); 
    } 
}) 
+1

這已過時。 '反序列化'不再存在。 – vanthome