スナックバーにSSEイベントを表示しようとしました。問題:snackBar
プロパティのonMessage
EventSourceの機能にアクセスできませんでした。 ブラウザコンソールに表示されるエラーはCannot read property 'open' of undefined
です。内部に角度成分のプロパティにアクセスできませんでした
import {Component, OnInit} from '@angular/core';
import {MatSnackBar} from '@angular/material';
@Component({
selector: 'snack-bar-overview-example',
templateUrl: 'snack-bar-overview-example.html',
})
export class SnackBarOverviewExample implements OnInit{
constructor(public snackBar: MatSnackBar) {}
ngOnInit() {
//Created a local Server Sent Events server
//which sends timestamp for every 5 second
var source = new EventSource('http://localhost:8000/events');
source.onmessage = function(response){
console.log('test', response.data);
//Could not able to access snackbar
//Error statement is given below
//Cannot read property 'open' of undefined
this.snackBar.open(response.data, 'close', {
duration: 4000
});
}
//Same lines here, have no issues and working perfectly
this.snackBar.open('message', 'close', {
duration: 4000
});
}
}
関数を作成すると、これは関数スコープに関連します。この場合、関数オブジェクト自体です。太い矢印で関数を定義する –