Вот вопрос: у меня есть компонент angular, который использует класс SignalR, который является частью библиотеки ng2-signalr. Я использую приведенный ниже код для создания соединения и прослушивания событий сервера:
import { SignalR, ISignalRConnection } from 'ng2-signalr';
export class SampleComponent implements OnInit {
listener :any;
testIndex =1;
message: string;
constructor(private _signalR: SignalR) {}
ngOnInit() {
this._signalR.connect().then((c:ISignalRConnection) => {
debugger
this.listener = c.listenFor<any>("broadcastMessage");
this.listener.subscribe((data: any) => {
this.message = data;
this.testIndex ++;
console.log(this.message);
console.log(this.testIndex);
});
}
}
если я просто перейду к компонентному маршруту или просто нажму cntrl + F5, все работает нормально, this.message and this.testIndex
обновится. вот проблема: если я перейду к новому маршруту и вернусь к маршруту SampleComponent
без обновления страницы, this.message
и this.testIndex
будут иметь правильные значения внутри обратного вызова, например, this.testIndex
увеличивается каждый раз при получении сообщение с сервера, но message
и testIndex
в SampleComponent имеют начальные значения, это означает, что message
не определено, а testIndex
значение равно 1 и больше никогда не обновляется.
сталкивался ли кто-нибудь с та же проблема, и он / она может мне с этим помочь?