2013-05-29 97 views
1

我的路由定義:灰燼.transitionToRoute和currentModel問題

this.resource("visitor", {path: ":id"}); 

當我通過URL /12345訪問頁,this.currentModel

{id: "12345"} 

但是當我this.transitionToRoute("visitor", "12345")從另一個(父母)控制器,其值爲this.currentModel

"12345" 

我也得到此異常:

Uncaught Error: assertion failed: Path '12345' must be global if no obj is given. 

任何想法是怎麼回事?

更多代碼:

App.VisitorRoute = Ember.Route.extend({ 
    model: function (params) { 
    return {id: params.id}; 
    }, 
    setupController: function() { ... } 
} 

回答

3

您需要向路由器說明如何將模型轉換爲URL,因此您需要覆蓋serialize

App.VisitorRoute = Ember.Route.extend({ 
    model: function (params) { 
    return {id: params.id}; 
    }, 
    serialize: function(model) { 
    return model; 
    } 
}); 

之後通過模型與過渡:

this.transitionToRoute('visitor' , { id: 12345 }); 
2

當你調用this.transitionToRoute(),你需要在路徑和模式作爲參數傳遞,所以不是this.transitionToRoute(「訪客」,「12345」) ,而是使用this.transitionToRoute(「visitor」,vistorModel)