2017-06-18 55 views
0

我正试图在退出屏幕之前提醒用户。如果他们按“不”,那么它不应该破坏。如果他们按下“确定”,然后进行销毁操作。ngOnDestroy在退出之前发出警告用户

ngOnDestory是否有在ngOnDestory之前发生的事件?例如ngOnBeforeDestroying?

我目前正在与角4

+0

搜索canDeactivate guard.It可以让你控制导航从特定page.So假设的地方有一个网页,其中允许用户填写表单的用户的后半段填满一个form.So试图去到另一个页面,比我们可以使用这个警卫来确认用户他是否真的想要导航,因为他的表单数据在导航时会丢失。 – pritesh

回答

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] 
     } 
    ]) 
    ], 

Read more here...

Angular's Official Demo

这可以通过动态元件装载也可实现。按照步骤here

相关问题