Подтвердить что ты не робот

EmberJS: как перенаправить с маршрута, сохраняя параметры запроса

Я хочу перенаправить с маршрута /new и сохранить параметры запроса для маршрута new:

Насколько мне известно, единственное место для доступа к queryParams находится внутри крюка model маршрута.

Но я хочу перенаправить в 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);
            });
        });
    }
});

В то время как вышеприведенный код работает, переход завершится без сохранения параметров запроса. Например, переход на applicants/new?agent=35 не сохранит agent=35 в параметре запроса и вместо этого будет просто перенаправлен на applicants/new.

Как я могу получить доступ к объекту queryParams из тэга beforeModel в моем приложении Ember?

4b9b3361

Ответ 1

Вы должны быть в состоянии передать параметры запроса в transitionTo, что-то вдоль строки:

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