访问beforeModel中的目标路由参数

Gle*_*ton 3 ember.js ember-router

beforeModel在Ember中加载路径时如何访问函数中的目标路径参数?

文档指的beforeModel是中止或重定向转换的正确位置 - 但是如果没有目标参数,我无法添加所需的逻辑来确定是否应该重定向.

App.PostRoute = Ember.Route.extend({
  beforeModel: function(transition) {

    // transition doesn't seem to have the target params

  }
});
Run Code Online (Sandbox Code Playgroud)

我也无法找到有关API文档中描述的Transition对象的任何明确文档:

http://emberjs.com/api/classes/Ember.Route.html#method_beforeModel

Mik*_*ski 5

从路线上,您可以使用:

App.PostRoute = Ember.Route.extend({
  beforeModel: function(transition) {
    var params = this.paramsFor('post');
  }
});
Run Code Online (Sandbox Code Playgroud)

但是不要忘记在相应的控制器中声明参数:

App.PostController = Ember.Controller.extend({
  queryParams: 'author title'.w()
});
Run Code Online (Sandbox Code Playgroud)

这里,例如,我声明authortitle允许参数.其他任何东西既不会被解析也不会传递给paramsFor调用者.