我遇到的问题是,snackbar组件在初始化时附加在cdk-global-overlay-wrapper之外(在cdk-overlay-container中)
这使得它在屏幕中间瞬间可见
它然后消失并重新附加在cdk-global-overlay-wrapper中并从底部滚动它应该.
任何想法如何改变这个?
解决方法:
我有一个类似的问题,MatSnackBar存在于Angular区域之外,这打破了它与Angular的生命周期钩子的交互.
这只发生在snackBar.open()callstack最初被第三方服务(在我的情况下是SignalR)中取消时.
我通过在我的组件中的ngzone.run()任务中包装snackBar.open()命令来修复它.这允许您从外部扩展的任务重新进入Angular区域.
例:
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");
});
}
}
这不是您描述的问题,但它可能有所帮助.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。