我正在尝试在router.js中进行条件转换。 我需要根据另一个休息服务返回的布尔值确定条件(哪个是合格对象)。 我可以编写一个函数来确定router.js中的值,以及如何使用该值将转换重定向到两条单独的路由。 如果资格是真的,我需要做 ' this.route('coverage',{ 路径:“ /” }); 其他 this.route('inEligible',{ 路径:“ /” }); ' 请提供一个例子。我是炭烬新手。
答案 0 :(得分:3)
我在路线中使用了这种模式:
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
export default class SettingsRoute extends Route {
@service currentUser;
async beforeModel() {
// inside the service, I have logic for checking if the user
// authenticated, not expired, and fetched
const isLoggedIn = await this.currentUser.isLoggedIn();
if (!isLoggedIn) {
this.transitionTo('setup');
return;
}
}
}
如果您使用的是非本地类:
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
export default Route.extend({
currentUser: service();
async beforeModel() {
// inside the service, I have logic for checking if the user
// authenticated, not expired, and fetched
const isLoggedIn = await this.currentUser.isLoggedIn();
if (!isLoggedIn) {
this.transitionTo('setup');
return;
}
}
});