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 中所示