Javascript 余烬.过渡路线和当前模型问题
我的路线定义如下:Javascript 余烬.过渡路线和当前模型问题,javascript,ember.js,javascript-framework,Javascript,Ember.js,Javascript Framework,我的路线定义如下: this.resource("visitor", {path: ":id"}); 当我通过URL/12345访问页面时,this.currentModel的值为 {id: "12345"} "12345" 但是当我从另一个(父)控制器this.transitionRoute(“访问者”,“12345”)时,this.currentModel的值为 {id: "12345"} "12345" 我也得到了这个例外: Uncaught Error: assertion f
this.resource("visitor", {path: ":id"});
当我通过URL/12345
访问页面时,this.currentModel
的值为
{id: "12345"}
"12345"
但是当我从另一个(父)控制器this.transitionRoute(“访问者”,“12345”)
时,this.currentModel
的值为
{id: "12345"}
"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() { ... }
}
调用此.TransitionRoute()时,需要将路由和模型作为参数传递,因此,在调用此.TransitionRoute()时,需要将路由和模型作为参数传递,而不是使用此.TransitionRoute(“访问者”,“12345”),而是使用此.TransitionRoute(“访问者”,vistorModel),因此,与其使用这个.TransitionRoute(“访问者”,“12345”),不如使用这个.TransitionRoute(“访问者”,vistorModel)您需要向路由器解释如何将您的模型转换为URL,因为您需要覆盖
序列化
App.VisitorRoute = Ember.Route.extend({
model: function (params) {
return {id: params.id};
},
serialize: function(model) {
return model;
}
});
之后,通过带有过渡的模型:
this.transitionToRoute('visitor' , { id: 12345 });
您需要向路由器解释如何将模型转换为URL,为此您需要覆盖序列化
App.VisitorRoute = Ember.Route.extend({
model: function (params) {
return {id: params.id};
},
serialize: function(model) {
return model;
}
});
之后,通过带有过渡的模型:
this.transitionToRoute('visitor' , { id: 12345 });