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

时间:2015-01-20 20:26:29

标签: ember.js

所以在用户/确认路由中,我能够访问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}}

1 个答案:

答案 0 :(得分:1)

正确答案是

{{render 'users/confirmation'}}

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

{{render 'users/confirmation' currentUser}}