Ember .transitionToRoute和currentModel问题

时间:2013-05-29 10:31:01

标签: javascript ember.js javascript-framework

我的路线已定义:

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

2 个答案:

答案 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)