我在我的页面中使用了ng2-toastr并且工作正常,但是当我在页面中有一个嵌套组件时,现有的ng2-toastr(ToastManager)范围被破坏并且toastr无效。
constructor(public toastr: ToastsManager,public vcr: ViewContainerRef) {
this.toastr.setRootViewContainerRef(vcr);
}
在我的方法中,当我打电话
this.toastr.warning('Its Warning','Alert');
它的工作正常,但在我加载其他组件时的html中,即
<es-app></es-app>
我页面中的toastr无效(无错误)
有时我会:
尝试使用已销毁的视图:detectChanges错误:尝试使用已销毁的视图:ViewDestroyedError中的detectChanges
答案 0 :(得分:0)
通过初始化ngAfterViewInit内的容器解决了问题
this.toastr.setRootViewContainerRef(vcr);
而不是
中的contsructorngAfterViewInit(){
this.toastr.setRootViewContainerRef(this.vcr);
}
因为嵌套组件正在加载并销毁页面实例,所以我们必须在加载所有组件后加载,并且按照页面生命周期挂钩在ngAfterViewInit中发生