访问beforeModel中的目标路由参数

时间:2015-04-28 08:21:50

标签: ember.js ember-router

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

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

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

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

  }
});

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

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

1 个答案:

答案 0 :(得分:5)

从路线中,您可以使用:

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

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

App.PostController = Ember.Controller.extend({
  queryParams: 'author title'.w()
});

这里,例如,我宣布author& title允许参数。其他任何内容都不会被解析或传递给paramsFor来电者。