我有一个navmenu需要在用户注销后重新加载。
我有一个logout.ts,它基本上清除了JWT和loggedIn值。
import { autoinject } from "aurelia-framework";
import { TokenService } from "../../auth/tokenService"; z
import { Router } from 'aurelia-router';
@autoinject
export class Logout {
constructor(private tokenService: TokenService, public router: Router) {
tokenService.clearJWT();
this.router.refreshNavigation()
}
}
这一切都很好,但我想重定向到主页,但同时更新菜单,这次重新检查登录状态。
我尝试重定向,我尝试过:
this.router.navigateToRoute('home')
和上面的那个。在所有情况下,navmenu都不会更新。通过更新navmenu,它将检查localstorage中的登录值并更改菜单的结构。
我还希望它在删除这些项目后进入主页但更重要的是如何让它刷新navmenu?
答案 0 :(得分:1)
听起来您需要确保您的home
路由已刷新,即使它已经是当前路由。如果是,请在configureRouter
方法中添加activationStrategy.replace
:
import {activationStrategy} from 'aurelia-router';
export class MyClass {
configureRouter(config) {
config.map([{
route: 'home',
name: 'home',
activationStrategy: activationStrategy.replace,
title: 'My Title',
moduleId: 'myModule',
}]);
}
}