我对 Angular 很陌生,但未能找到我正在寻找的答案。
我现在面临的问题是,当我切换到另一条路线时,所有全局错误消息都没有消失。
我试图通过使用 CanDeactivate 接口来解决这个问题。这是我的 canDeactivate 方法:
canDeactivate(): Observable<boolean> {
console.log('delete test');
this.globalMessageService.remove(GlobalMessageType.MSG_TYPE_ERROR);
return of(true);
}
此方法是在名为 cms-page.guard.ts 的服务中创建的,通过在特定页面中使用它,它似乎工作得很好。例如,如果我在“课程”页面中使用它:
const routes: Routes = [
{
path: 'courses',
canActivate: [CmsPageGuards],
canDeactivate: [CmsPageGuards],
data: { pageLabel: 'courses' },
component: CoursesPageComponent
}
];
基本上,我所做的是在特定页面上应用 canDeactivate 方法。我想知道是否可以创建一个全局应用 canDeactivate 方法的 Guard,因此当您更改为另一条路线时它适用于所有页面?