ngOnDestroy 在退出前警告用户
ngOnDestroy warn user before exiting
我正在尝试找到一种在退出屏幕之前提醒用户的方法。如果他们按 "no" 那么它不应该被破坏。如果他们按 "ok" 则继续销毁操作。
ngOnDestory 是否有在 ngOnDestory 之前发生的事件?例如 ngOnBeforeDestroying?
我目前正在开发 Angular 4.
是的,你应该使用 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
我正在尝试找到一种在退出屏幕之前提醒用户的方法。如果他们按 "no" 那么它不应该被破坏。如果他们按 "ok" 则继续销毁操作。
ngOnDestory 是否有在 ngOnDestory 之前发生的事件?例如 ngOnBeforeDestroying?
我目前正在开发 Angular 4.
是的,你应该使用 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