В моем угловом приложении я реализовал приложение signalR для взаимодействия вызовов для участников и администратора. на странице администратора (у администратора есть страница участников с профилями)
Поэтому мое требование заключается в том, что когда администратор получает вызов от участников (в основном на странице администратора), он должен показывать конкретную мамбер-страницу каждый раз, когда происходит вызов.
.component.ts
private hubConnection: signalR.HubConnection
async startConnection() {
this.hubConnection = new signalR.HubConnectionBuilder()
.withUrl(Notifications,{
skipNegotiation: true,
transport: signalR.HttpTransportType.WebSockets
})
.build();
await this.hubConnection
.start()
.then(() => console.info('Connection started' ))
.catch(err => console.info('Error while starting connection: ' + err))
this.hubConnection.invoke("RegisterAsync", this.Email)
this.hubConnection.on("CallConnected", (EmailId:string, MemberID:number) => {
if (!(MemberID == 0)){
this.router.navigate(['./memberPage/' + CallingMembersID]);
}
else{
this.router.navigate(['./searchPage']);
}
})
}
В приведенном выше коде, если администратор находится на других страницах (на странице администратора), он работает правильно, т.е. на основе условия, на котором отображается страница профиля участника.
Но только одно условие не работает, то есть когда администратор уже находится в memberPage, и если условие удовлетворяет, он должен показать другую memberPage с этим конкретным идентификатором, но здесь он показывает обновленный идентификатор участника в адресной строке, но не переходит на страницу к этому конкретная страница.
Я застрял в этом состоянии, только может ли кто-нибудь помочь мне в том же
Это естественное поведение angular, когда вы пытаетесь перейти по тому же URL-адресу. Вы можете обратиться к этому: Angular — переход к текущему тому же URL-адресу с перезагрузкой компонента, а не всей страницы
Просто добавьте подписку на активированный маршрут, например
в вас component.ts
constructor(private activatedRoute: ActivatedRoute,....){}
ngOnInit(){
this.activatedRoute.paramMap.subscribe((params) =>{ params.get('CallingMembersID') // Or however you called this param;
// Your logic
})
}
Попробуйте добавить
this.router.routeReuseStrategy.shouldReuseRoute = () => false;
в конструктор