2015-07-10 11 views
10

Voglio reindirizzare da una rotta, /new, e mantenere i parametri di query per la new percorso:EmberJS: come Redirect da Route, Mantenere Query Params

Per quanto ne so, l'unico posto per accedere queryParams si trova nel gancio model di un percorso.

ma voglio riorientare nella beforeModel hook:

import Ember from "ember"; 

export default Ember.Route.extend({ 
    /** 
    * @@override 
    * Implicitly create a new applicant, redirecting to the generated ID at /applications/#{id} 
    * @param transition 
    */ 
    beforeModel: function(transition) { 
     var emptyApplicant = this.store.createRecord("applicant", 
       {isPrimary: true} 
      ), 
      emptyApplication = this.store.createRecord("application"); 
     emptyApplication.set("applicant", emptyApplicant); 
     emptyApplicant.save().then((savedApplicant) => { 
      emptyApplication.save().then((savedApplication) => { 
       this.transitionTo("applications", savedApplication); 
      }); 
     }); 
    } 
}); 

Mentre il codice precedente funziona, la transizione sarà completare senza mantenere i parametri di query. Ad esempio, la navigazione su applicants/new?agent=35 non conserva agent=35 nella query param e semplicemente reindirizzerà a applicants/new.

Come posso accedere all'oggetto queryParams dal gancio beforeModel nell'app Ember?

risposta

9

Si dovrebbe essere in grado di passare query parameters al transitionTo, qualcosa lungo la linea del:

this.transitionTo("applications", savedApplication, { 
    queryParams: transition.queryParams 
});