Привет! Я использовал тег привязки для открытия routerLink в новой вкладке. Теперь, если я нажму на выход из системы, routerLink на новой вкладке останется прежним, если есть какое-либо попадание API, то routerLink перенаправит на страницу входа. Но я хочу, чтобы все вкладки закрывались, как только я выйду из системы, так как другие страницы маршрутизатора не имеют заголовка на экране.
Header.component.ts:
public logout() {
this.authservice.logOutSuccess(true);
this.router.navigate(["/login"]);
this.cookieService.delete(TPIConstants.AUTH_TOKEN);
}
Здесь, в компоненте заголовка, если я нажимаю на кнопку «Выйти», я очищаю повара ie, поэтому экран перенаправляется на страницу входа.
Но на целевой странице я добавляю новую кнопку, когда я нажмите на это, он открывает маршрутизатор в новой вкладке,
Landing. html:
<a class="btn btn-light" target="_blank" [routerLink]="['/profile']"> Add New</a>
Экран профиля теперь открывается в новой вкладке.
Итак, я использовал общую службу под названием auth.service, в которой я использовал субъект
auth.service.ts:
public detectLogOutSubject = new Subject<any>();
logOutConfirmed$ = this.detectLogOutSubject.asObservable();
logOutSuccess(value) {
this.detectLogOutSubject.next(value);
}
, поэтому, когда я нажимаю на выход из системы, он приходит к authservice и запускает это событие, и на странице профиля я написал так в методе конструктора
profile.component.ts: и app.component.ts
constructor(){
this.subscription = this.authService.logOutConfirmed$.subscribe(
res => {
alert(res)
});
}
Профиль. html:
<div>
<button class="btn btn-secondary" onclick="window.close();" title="Close Window">
<i class="fas fa-times fa-1x"></i>
</button>
</div>
В профиле html, у меня есть раздел выше div, если это нажмите три Кроме того, он закроет вкладку, но я не могу получить событие из функции выхода из системы на экран профиля / app.component также, я поражен, нет, где получить, как действовать