Angular 5材质,材料零食栏无法正确显示自定义ErrorHandling,否则它可以正常工作:
我试图使用材料零食栏显示我的后端错误,问题是它第一次被触发时,它出现在错误的位置(不是底部中间,因为它应该,但是在左边)&它会永远停留在那里而不会消失(根据我的配置,它会在2秒后自动消失)
下次出现时,它会正确显示& 2秒后消失。
请在此处尝试此问题: stackblitz example showing my issue.
由于
答案 0 :(得分:3)
我花了很长时间才找到答案,我不太清楚它为什么会这样,但确实有效,所以我希望它可以帮助别人。
在调用ErrorHandler中的材料快餐栏时,我们必须使用一个名为NgZone的东西(我认为由于在Angular中以某种特殊方式调用了ErrorHandler)
所以调用snackbar的代码应该是:
constructor(private matSnackBar: MatSnackBar, private zone: NgZone, private dataService: DataService) { }
notify (message: string) {
this.zone.run(() => {
this.matSnackBar.open(message, '' , {
duration: 2000
});
});
}