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

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

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

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

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

【问题讨论】:

    标签: angular angular-material snackbar


    【解决方案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 保存最后一条错误消息,并将两条错误消息合并到单个小吃店中,并在关闭第二个小吃店后清除本地存储。

            【讨论】:

            • 我认为情况并非如此。事实上,我目前正在尝试解决同时打开多个的问题。
            猜你喜欢
            • 2018-07-03
            • 1970-01-01
            • 1970-01-01
            • 2021-11-06
            • 1970-01-01
            • 2016-12-22
            • 2017-04-05
            • 2021-02-27
            • 1970-01-01
            相关资源
            最近更新 更多