我的路线已定义:
this.resource("visitor", {path: ":id"});
当我通过网址/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() { ... }
}
答案 0 :(得分:3)
您需要向路由器说明如何将模型转换为网址,因为您需要覆盖serialize
。
App.VisitorRoute = Ember.Route.extend({
model: function (params) {
return {id: params.id};
},
serialize: function(model) {
return model;
}
});
之后通过模型转换:
this.transitionToRoute('visitor' , { id: 12345 });
答案 1 :(得分:2)
当你调用this.transitionToRoute()时,你需要传递路径和模型作为参数,所以不要使用this.transitionToRoute(“visitor”,“12345”),而是使用this.transitionToRoute(“visitor”, vistorModel)