我正在尝试找到一种在退出屏幕之前提醒用户的方法。如果他们按“否”则不应该销毁。如果他们按“确定”然后继续进行销毁操作。
ngOnDestory是否有在ngOnDestory之前发生的事件?例如ngOnBeforeDestroying?
我目前正在开发Angular 4。
答案 0 :(得分:2)
canDeactivate
路线保护。
创建可注射服务
@Injectable()
class CanDeactivateService implements CanDeactivate<TeamComponent> {
canDeactivate(
component: TeamComponent,
currentRoute: ActivatedRouteSnapshot,
currentState: RouterStateSnapshot,
nextState: RouterStateSnapshot
): Observable<boolean>|Promise<boolean>|boolean {
return component.isDirty ;
}
}
这可用于确定是否可以销毁页面。
这应该在路由中配置为
RouterModule.forRoot([
{
path: '..', // path
component: Comp, // name of the component
canDeactivate: [CanDeactivateService]
}
])
],
这也可以通过动态组件加载来实现。按照 here
步骤操作