2015-07-10 14 views
10

ich von einer Route umleiten möchten, /new, und halten Sie die Abfrage params für die new Route:EmberJS: Wie von der Route umleiten, Keeping Abfrage Params

Soweit ich weiß, der einzige Ort, den Zugriff auf queryParams ist innerhalb der model Hook einer Route.

Aber ich will in der beforeModel hook umleiten:

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); 
      }); 
     }); 
    } 
}); 

Während der obige Code funktioniert, wird der Übergang abschließen, ohne die Abfrage params zu erhalten. Wenn Sie beispielsweise zu applicants/new?agent=35 navigieren, wird agent=35 im Abfrageparameter nicht beibehalten und stattdessen einfach an applicants/new umgeleitet.

Wie kann ich auf das queryParams Objekt von der beforeModel Hook in meiner Ember App zugreifen?

Antwort

9

Sie sollten in der Lage sein query parameters zum transitionTo entlang der Linie von etwas passieren:

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