在视图或视图的控制器中访问查询参数

Access Query Params in view or in view's controller

所以在 users/confirmation 路由中,我能够在 setupController 挂钩

中访问 confirmation_token
export default Ember.Route.extend(PresentsModalsMixin, {
   setupController: function(controller, model){
    this._super(controller,model);
    controller.get('confirmation_token'); // token I want in query params is available here.
   }
});

但在视图中,确认令牌不再位于 this.get('controller.confirmation_token'')

export default Ember.View.extend({
     templateName: 'users/confirmation',

    actions: {
      submit: function() {
        this.get('controller.confirmation_token'); // null
        this.get('controller').send('submit');
      }
   }
}   
});

在动作所在的控制器中,它也不再可用

export default Ember.Controller.extend({
  queryParams: ["confirmation_token"],
  confirmation_token: null,

  actions: {
   submit: function() {
    this.get('confirmation_token'); // null value
   }
  }
});

为什么查询参数被吹走了?有什么办法可以取回它吗

调用视图的模板如下所示 {{render 'users/confirmation' currentUser}}

正确答案是

{{render 'users/confirmation'}}

删除 currentUser 作为第二个参数并且不传递任何参数修复了这个问题并允许您保留查询参数,当您像这样传递第二个参数时它会被覆盖

{{render 'users/confirmation' currentUser}}