首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角5材料夹条

角5材料夹条
EN

Stack Overflow用户
提问于 2018-01-24 12:58:34
回答 1查看 3.5K关注 0票数 3

我遇到的问题是,当初始化snackbar组件时,它被附加在cdk-全局覆盖包装器(cdk-overlay容器内)之外。

这使得它在屏幕中央瞬间可见。

然后它消失,重新附着在cdk全球覆盖包装和滚动从底部,它应该。

有什么办法改变这种状况吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-26 14:45:01

我有一个类似的问题,MatSnackBar存在于角区域之外,这破坏了它与角的生命周期挂钩的交互作用。

只有当snackBar.open()调用堆栈最初由第三方服务(在我的例子中是SignalR)字典时才会发生这种情况。

我通过将snackBar.open()命令包装到组件中的NgZone.run()任务中来修复它。这允许你重新进入角度区域,从一个任务,从外部词汇。

示例:

代码语言:javascript
复制
import { Component, NgZone } from '@angular/core';
import { MatSnackBar } from '@angular/material';

@Component({
  selector: 'example',
  templateUrl: './example.component.html',
  styleUrls: ['./example.component.scss']
})
export class ExampleComponent {

  constructor( private snackBar: MatSnackBar, private zone: NgZone ) { }

  showSnackBar() {
    this.zone.run(() => {
      this.snackBar.open("message", "action");
    });
  }
}

这并不是你所描述的问题,但可能会有所帮助。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48423110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档