我遇到的问题是,当初始化snackbar组件时,它被附加在cdk-全局覆盖包装器(cdk-overlay容器内)之外。
这使得它在屏幕中央瞬间可见。
然后它消失,重新附着在cdk全球覆盖包装和滚动从底部,它应该。
有什么办法改变这种状况吗?
发布于 2018-01-26 14:45:01
我有一个类似的问题,MatSnackBar存在于角区域之外,这破坏了它与角的生命周期挂钩的交互作用。
只有当snackBar.open()调用堆栈最初由第三方服务(在我的例子中是SignalR)字典时才会发生这种情况。
我通过将snackBar.open()命令包装到组件中的NgZone.run()任务中来修复它。这允许你重新进入角度区域,从一个任务,从外部词汇。
示例:
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");
});
}
}这并不是你所描述的问题,但可能会有所帮助。
https://stackoverflow.com/questions/48423110
复制相似问题