2017-03-20 75 views
0

我需要使用可选的查询参数,尽管以前的帖子我努力让它工作。Ember可选查询参数

我的应用程序用于发布教学课程。设置为:

  • 用户可以发布教学课程。他们也可以要求教授课程。
  • 如果他们发布会话,我使用sessions.new路由。在这条路线中,模型对象返回一个具有默认设置的新会话对象。
  • 如果他们的教学要求作出回应我要教学请求ID传递给sessions.new路线,这样我可以预先填充来自请求信息的模型,以及会话链接请求
  • 这因为我使用多页'向导'来创建会话,所以sessions.new路线实际上有多个子路线(sessions.new.wizard1,sessions.new.wizard2等)

我目前的设置看起来像这样:

路由器:

this.route('sessions', function(){ 
    this.route('new', function(){ 
     this.route('wizard1'); 
     this.route('wizard1'); 
     this.route('wizard3'); 
     this.route('from-request', {path: 'from-request/:request_id'}); 
    }) 
}) 

该模型在sessions.new路由上定义,并在子路由之间共享。

我想要做这样的事情在从请求子路线:

afterModel: function(model, transition){ 
    this.store.findRecord('request', transition.queryParams.request_id).then(function(request){ 
     model.set('info', request.get('info')); 
    }); 
    this.transitionTo('sessions.new.wizard1'); 
} 

这似乎并没有在所有的工作。我无法像我期望的那样访问转换对象上的queryParams。此外,我在模型上设置的任何东西在转换后似乎都不会持续。

有没有更好的方法来做到这一点?我错过了什么吗?

非常感谢

回答