Angular Material - 不关闭 Material 小吃吧

Posted

技术标签:

【中文标题】Angular Material - 不关闭 Material 小吃吧【英文标题】:Angular Material - Not closing Material snackbar 【发布时间】:2018-09-12 23:27:40 【问题描述】:

我正在使用 Angular 和 Angular Material 版本 5。

有没有办法让小吃店保持打开状态?

例如,如果发生错误,请打开一个小吃店并将该小吃店的持续时间或超时设置为在 5 秒后关闭。如果在这 5 秒内发生另一个错误,我怎样才能不关闭这个,然后打开另一个小吃店,而只是增加这个的持续时间几秒钟?

这里是 stackblitz 网址:https://stackblitz.com/edit/angular-j4ww8y

【问题讨论】:

【参考方案1】:

这并不能回答最初的问题,但是,如果您想要一个无限期的小吃店: snapbar.open("消息", "动作", duration: undefined);

【讨论】:

【参考方案2】:

你可以反过来试试:

设置一个非常长的超时持续时间,然后,如果在接下来的 5 秒内没有发生错误,则使用dismiss 方法将其关闭

https://material.angular.io/components/snack-bar/api

您可以在快餐栏内添加自定义组件,而不仅仅是文本。该自定义组件可以负责更新消息

https://material.angular.io/components/snack-bar/examples

顺便说一句,在您的堆栈闪电战中,小吃店永远不会关闭,因为您将持续时间声明为

duration: 5000;

而不是

duration = 5000;

【讨论】:

【参考方案3】:

您可以将持续时间 0 设置为小吃栏选项

 duration: 0 

【讨论】:

【参考方案4】:

只需忽略持续时间元素。那么小吃店就永远不会关门了

【讨论】:

【参考方案5】:

一次只能打开一家小吃店。如果在前一条消息仍在显示时打开了新的快餐栏,则旧消息将自动关闭。

相反,您可以使用 localstorage 保存最后一条错误消息,并将两条错误消息合并到单个小吃店中,并在关闭第二个小吃店后清除本地存储。

【讨论】:

我认为情况并非如此。事实上,我目前正在尝试解决同时打开多个的问题。

以上是关于Angular Material - 不关闭 Material 小吃吧的主要内容,如果未能解决你的问题,请参考以下文章

Angular 6 Material - 等待 Mat 对话框关闭

Angular Material VS Materializecss [关闭]

如何关闭隐藏的 Angular Material 类的 flex 布局

Angular Material mat-expansion-panel-body 样式未应用

mat-autoComplete 中的占位符不起作用,如 Angular Material Documentation 中所示

Material datePicker(Angular)中的多个日期选择