2013-04-14 125 views
2

當我撥打以下:emberjs transitionToRoute嵌套動態

this.get('controller').transitionToRoute('dashboards.submenu', {dashboard_id: "31", item_id: "97", subitem_id: "11"}); 

我也試過:

this.get('controller').transitionToRoute('dashboards.submenu', dash, item, subitem); 

沒有成功...

我的網址是這樣的:

localhost:9000/#/dashboards/undefined/undefined/undefined 

不幸的是我會喜歡它是

localhost:9000/#/dashboards/31/97/11 

任何想法爲什麼?

如果我直接去

localhost:9000/#/dashboards/31/97/11 

它可以正常工作....

這是我的路由器....

App.Router.map(function() { 
    this.resource("index", { path: "/" }); 

    this.resource("dashboards", { path: "/dashboards" } , function(){ 
       this.route("main", { path: '/' }); 
       this.route("index", { path: '/:dashboard_id' }); 
       this.route("submenu", { path: '/:dashboard_id/:item_id/:subitem_id' }); 
    }); 
}); 

回答

1

您必須實現modelserialize你的路線的方法。例如:

model: function(params) { 
    return Ember.Object.create({dashboard_id: params.dashboard_id, item_id: params.item_id, subitem_id: params.subitem_id}); 
}, 

serialize: function(model) { 
    return {dashboard_id: model.get('dashboard_id'), item_id: model.get('item_id'), subitem_id: model.get('subitem_id')}; 
}, 
+0

謝謝,我已經嘗試了serialize/deserialize方法沒有成功...不是成功......儘管模型沒有「get」方法,我不得不使用model.dashboard_id, model.item_id,model.subitem_id – TheAce