添加这个新对话框非常复杂,它是我无法添加的唯一组件。
我需要设置一次吗?在我的根组件或什么?因为它不起作用一旦我有“没有提供者MdlDialogReference”,一旦我有“没有所有参数(?)”,我就可以将它添加到我的构造函数中。
实际代码:
FILE app.component.ts
constructor( private vcRef: ViewContainerRef,
private dialog: MdlDialogReference, private dialogService: MdlDialogService, private httpService: HttpService, private communicationInsideServices : CommunicationInsideServices, private activatedRoute : ActivatedRoute, private router : Router) {
}
get viewContainerRef() {
return this.vcRef;
}
有错误吗?因为这不会加载我的应用程序,如何将此对话框称为另一个子组件?
答案 0 :(得分:0)
你接近解决方案了!指定附加对话框的ViewContainerRef非常重要。请在app.component.ts中查看此工作plnkr(http://plnkr.co/edit/HgAvCnzkWAmK1NVxfEUM?p=preview):
constructor(private dialogService: MdlDialogService,
private viewContainerRef: ViewContainerRef){
dialogService.setDefaultViewContainerRef(viewContainerRef);
}
这只需要做一次。可以为每个viewConatinerRef
调用提供showCustomDialog
,但在根应用程序的构造函数中执行此操作会更容易。应该有一条错误消息通知您有关此缺失的信息(将在即将发布的版本中修复)。
版本2.0.0的更新:
您不再需要手动拨打setDefaultViewContainerRef
。只需在html文件中添加dialog-outlet
元素即可:
这样:
<html>
<head>...</head>
<body>
<app-root>...</app-root>
<dialog-outlet></dialog-outlet>
</body>
</html>