Охранники могут использовать наблюдаемые, поэтому вам достаточно вернуть наблюдаемую, которая открывает диалог и затем передает true
или false
.
Например, как это используется в моем проекте на canDeactivate
(охранники работают по одному и тому же принципу независимо от того, в каком случае)
canDeactivate(
component: Component,
currentRoute: ActivatedRouteSnapshot,
currentState: RouterStateSnapshot,
nextState?: RouterStateSnapshot
): Observable<boolean> | Promise<boolean> | boolean {
// Opens a modal and returns an observable
return this.ps.openModal({
confirmMessage: confirmMessage,
confirmHeader: confirmHeader,
modalColor: modalColor,
approve: approve,
cancel: cancel,
buttonsColor: buttonsColor
});
}