EmberJS:如何从路由重定向,保持查询参数

use*_*980 10 redirect ember.js ember-data

我想从路由重定向/new,并保留路由的查询参数new:

据我所知,唯一可以进入的地方queryParamsmodel路线的钩子.

但我想重新定位beforeModel钩子:

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);
            });
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

虽然上面的代码有效,但转换将在不保留查询参数的情况下完成.例如,导航到applicants/new?agent=35不会保留agent=35在查询参数中,而只是重定向到applicants/new.

如何queryParamsbeforeModel我的Ember应用程序中的钩子中访问该对象?

Pat*_*ssa 9

您应该能够将查询参数传递给transitionTo以下行:

this.transitionTo("applications", savedApplication, {
  queryParams: transition.queryParams
});
Run Code Online (Sandbox Code Playgroud)