场景:我需要使用ng2-toaster
来显示所有组件中的消息。而不是在每个组件中写相同的烤面包机。我需要在全局服务中编写一个组件,并且所有组件都使用它。但我无法使其发挥作用。任何意见将是有益的。谢谢。
这是我的代码:
global.service.ts
import { ToastsManager } from 'ng2-toastr/ng2-toastr';
'''
constructor(public toastr: ToastsManager) { }
...
showSuccess() {
this.toastr.success('Called from Global service', 'Success!', {toastLife: 3000});
}
some.component.ts
import { GlobalService } from './services';
...
ngInit(){
this.globalService.showSuccess()
}
错误:
这是我得到的错误。
Error: Application root component cannot be found. Try accessing application reference in the later life cycle of angular app.
答案 0 :(得分:7)
对于Angular v2.2.x,您需要在应用的根组件中添加以下内容:
// AppComponent.ts(应用的根组件)
constructor(public toastr: ToastsManager, vRef: ViewContainerRef) {
this.toastr.setRootViewContainerRef(vRef);
}