Javascript 在ngOnInit中调用函数时使用Angular5类型脚本
以下Angular5代码有问题:Javascript 在ngOnInit中调用函数时使用Angular5类型脚本,javascript,angular,typescript,angular-material-5,Javascript,Angular,Typescript,Angular Material 5,以下Angular5代码有问题: constructor(protected snackBar: MatSnackBar) {} openSnackBar(message: string, action: string) { this.snackBar.open(message, action, { duration: 2000, }); } ngOnInit() { const socket = io(); socket.
constructor(protected snackBar: MatSnackBar) {}
openSnackBar(message: string, action: string) {
this.snackBar.open(message, action, {
duration: 2000,
});
}
ngOnInit() {
const socket = io();
socket.on('notification', function (data) {
this.openSnackBar(data.message,"Undo");
});
}
根据端点调用websocket(使用socket.io)的时间,我希望使用Angular Material snackbar显示来自套接字的data.message
很遗憾,我收到以下错误:
ERROR TypeError: "this.openSnackBar is not a function"
不确定我在这里做错了什么,是否有上述可能?改用箭头功能
=>
-
socket.on('notification', (data) => {
this.openSnackBar(data.message,"Undo");
});
因为,它没有自己的
这个使用一个胖箭头函数进行回调。工作得很好