使用对话框非常复杂

时间:2016-10-04 08:46:07

标签: angular2-mdl

添加这个新对话框非常复杂,它是我无法添加的唯一组件。

  1. 我不知道是否需要在app.module.ts
  2. 中添加内容
  3. 如何创建此对话框?我真的不明白有很多信息Dialogreference
  4. 我需要设置一次吗?在我的根组件或什么?因为它不起作用一旦我有“没有提供者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;
      }
    

    有错误吗?因为这不会加载我的应用程序,如何将此对话框称为另一个子组件?

1 个答案:

答案 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>