首页 文章

仅为自定义ErrorHandling无法正确显示Angular 5材质快餐栏,否则它可以正常工作

提问于
浏览
2

Angular 5材质,材料快餐栏不能正确显示自定义ErrorHandling,否则它可以正常工作:

我试图用物质快餐栏显示我的后端错误,问题是它第一次被触发,它出现在错误的地方(不是应该的底部中间,而是向左)并且它永远停留在那里而不会消失(根据我的配置,它会在2秒后自动消失)

对于下一次出现,它将正确显示并在2秒后消失 .

请在此处尝试此问题:stackblitz example showing my issue.

The stackblitz code is here

谢谢

1 回答

  • 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
          });
        });
      }
    

    Updated Stackblitz that is now working

相关问题