在ngOnInit中,我调用了一个服务来获取令牌,但它不起作用,就像代码的一部分被省略了,它没有出现在网络请求中,该服务起作用了,因为我在稍后再使用另一个组件,但是我现在需要从那里使用它,该文件是app.component.ts
//imports
export class AppComponent implements OnDestroy {
title = 'cor4edu-fe';
menu: NbMenuItem[];
alive: boolean = true;
constructor(private sidebarService: NbSidebarService,
private appMenu: AppMenu,
public auth: AuthService) {}
ngOnInit(){
this.auth.getTokenSilently$().subscribe((token) => {
console.log(token);
localStorage.setItem("Token", token);
})
this.myFuncion();
this.initMenu();
}
getToken() {
return new Promise((resolve) => {
this.auth.getTokenSilently$().subscribe(token => resolve(token));
});
}
async myFuncion() {
const token = await this.getToken();
console.log(token);
}
toggle() {
this.sidebarService.toggle(true);
return false;
}
initMenu() {
const token= localStorage.getItem("Token");
const tokenPayload = decode(token);
const permissions=tokenPayload['permissions'];
this.appMenu.getMenu()
.pipe(takeWhile(() => this.alive))
.subscribe(menu => {
console.log(localStorage.getItem("Token"));
const exist = (menu, permissions) => menu.filter(el1=>permissions.some(el2=> "/"+el2.split(":")[1]==el1.link));
const menun=exist(menu, permissions);
if(this.auth.isAuthenticated()){
this.menu = menun;
}else{
this.menu=[
{
title: 'Dashboard',
icon: 'home-outline',
link: '/',
home: true,
children: undefined,
}
]
}
});
}
ngOnDestroy(): void {
this.alive = false;
}
}
答案 0 :(得分:1)
您的组件未实现OnInit接口,因此不会调用ngOnInit。