В angular 4 после подписки на веб-сокет не удалось обновить элемент интерфейса с сообщением из сокета
Я делаю кодирование под углом 4. У меня есть веб-сокет, и я могу регистрировать сообщения, поступающие на веб-сокет, с console.log(), но когда я обновляю переменную с этим сообщением, то же самое не отражается на пользовательском интерфейсе. Пожалуйста, найдите код ниже.
constructor(private zone: NgZone, private cdRef: ChangeDetectorRef, private DataService1: DataService, private calcSevice: PostService, private datepipe: DatePipe, private elementRef: ElementRef) {
this.ws = new SockJS(this.serverUrl);
this.stompClient = Stomp.over(this.ws);
let that = this;
this.stompClient.connect({}, function (frame) {
that.stompClient.subscribe("/updates/public", (message) => {
//this.zone.run(() => {
alert("got message");
this.refreshErrorMessage = message.body;
console.log("Message from socket is" + this.refreshErrorMessage);
});
//});
});
}
Я думал, что это проблема с зоной, поэтому я поместил код для ngzone, как прокомментировано выше, в две строки, но затем он дал мне Невозможно прочитать свойство 'run' с неопределенной ошибкой. Пожалуйста помоги