使用以下Angular5代码时遇到麻烦:
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小吃栏从套接字显示我的data.message。
很遗憾,我收到以下错误消息:
ERROR TypeError: "this.openSnackBar is not a function"
不确定我在这里做错了什么吗,还有可能吗?
答案 0 :(得分:3)
请改用箭头功能=>
-
socket.on('notification', (data) => {
this.openSnackBar(data.message,"Undo");
});
因为它没有自己的this