1

我的路线已定义:

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() { ... }
}
4

2 回答 2

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 });
于 2013-05-29T11:02:34.923 回答
2

当你调用 this.transitionToRoute() 时,你需要传入路由和模型作为参数,所以不要使用 this.transitionToRoute("visitor", "12345"),而是使用 this.transitionToRoute("visitor", vistorModel)

于 2013-05-29T10:49:54.957 回答