2017-10-06 82 views
0

我需要订阅一个dxPopover中的窗体,如下所示,但窗体总是未定义的变化。如何访问dxTemplate里面的Devextreme dxPopover里面的Angular2

但是,如果我将窗体移到dxPopover之外,那么就没有问题了。

如何在dxPopover中访问表单元素?

模板:

<dx-popover 
       target="#button" 
       position="bottom" 
       width="900px" 
       [visible]="true"> 

    <div *dxTemplate="let data of 'content'"> 
      <form #form="ngForm" > 
       <!-- form content --> 
      </form> 
    </div> 
</dx-popover> 

组件:

@ViewChild('form') form; 

ngAfterViewInit() { 
    console.log(this.form); // outputs 'undefined' 

} 

编辑:这里是一个普拉克 - https://plnkr.co/edit/nQJ0brGs0FlMBkexuavK

回答

0

选项1:

经过HTML像你这样的内部dxPopover标记为re要求您在dxPopover的模板中添加<ng-content>,以便它被注入,然后在视图init生命周期钩子之后,您可以访问有问题的变量。

选项2:

你应该移动该div实际的组件模板中的dx-popover组件指令内。

然后使用输出装饰器的形式的值发射到承载dx-popover部件

,如果你想将数据传递到所述dx-popover组件可以使用输入装饰作为其他父组件方式。

请查看官方文档为例Here

+0

我不知道如果我明白为什么我会想使用输入/输出这个简单的任务。我添加了一个plunk。如果您有时间,请修改。谢谢! – dexter