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 });