Angular 2 PrimeNG 的嵌套模态对话框不起作用
Angular 2 Nested Modal Dialog with PrimeNG doesn't work
我正在使用 PrimeNG 对话框组件,我有一个模态对话框,单击一个按钮,我想显示另一个模态对话框。
我的第二个模态对话框并不是真正的模态对话框,因为我只能看到按钮后面的对话框内容。
我确实更改了第二个模式对话框的 p-dialog 的 [appendTo] 属性,但它似乎无法正常工作。
如何在 p 对话框中打开嵌套对话框?
angular 2 组件中的对话框:
<p-dialog header="Create/Edit Financial Flow" [visible]="display$ | async" modal="modal" width="500" height="600" responsive="true" [resizable]="false" [closable]="false">
<financial-flowdialog #myfinancialflowdialog (onCloseDialog) ="closeDialog()" [flowdata]="selectedFlows$ | async"></financial-flowdialog>
</p-dialog>
在第一个模式对话框中单击按钮时,应打开第二个对话框。嵌套对话框的定义如下:
<p-dialog header="Title" [(visible)]="display" [appendTo]="body" *ngIf="display" modal="modal" width="500" height="600" responsive="true"
[resizable]="false" [closable]="false">
<div class="container-fluid">
<form (ngSubmit)="onSubmit()">
<div class="pull-right top-buffer ">
<button type="button" class="btn btn-primary" (click)="closeDialog()">Cancel</button>
<button type="submit" class="btn btn-primary">Select</button>
</div>
</form>
</div>
</p-dialog>
<button type="button" #mybtn [value]="value" ngDefaultControl [formControlName]="key" [id]="key" [ngStyle]="style" (click)="openDialog()">{{label}}</button>
我可以打开第一个对话框,但是当我单击按钮打开第二个对话框时,对话框的内容显示正常 div。下面 html 呈现:
<section>
<div id="nestediag" ng-reflect-form="[object Object]" class="ng-pristine ng-invalid ng-touched">
<!--template bindings={
"ng-reflect-ng-if": "true"
}--><p-dialog header="Title" height="600" modal="modal" responsive="true" width="500" ng-reflect-visible="true">
<div class="container-fluid">
<form class="ng-untouched ng-pristine ng-valid">
<div class="pull-right top-buffer ">
<button class="btn btn-primary" type="button">Cancel</button>
<button class="btn btn-primary" type="submit">Select</button>
</div>
</form>
</div>
</p-dialog>
<button ngdefaultcontrol="" type="button" value="Select a payee" ng-reflect-name="flowpayee" ng-reflect-ng-style="[object Object]" ng-reflect-value="Select a payee" ng-reflect-id="flowpayee" id="flowpayee" class="ng-pristine ng-valid ng-touched" style="width: 100%;">Select a payee</button>
</div>
</section>
定义一个 componentref 变量并使用 [appendTo]="Componentref" 解决问题。
查看讨论 https://github.com/primefaces/primeng/issues/656
您可以通过使用 appendTo 属性将第二个对话框附加到文档正文来解决此问题,例如
<p-dialog appendTo="body">
...
</p-dialog>
我正在使用 PrimeNG 对话框组件,我有一个模态对话框,单击一个按钮,我想显示另一个模态对话框。
我的第二个模态对话框并不是真正的模态对话框,因为我只能看到按钮后面的对话框内容。
我确实更改了第二个模式对话框的 p-dialog 的 [appendTo] 属性,但它似乎无法正常工作。
如何在 p 对话框中打开嵌套对话框?
angular 2 组件中的对话框:
<p-dialog header="Create/Edit Financial Flow" [visible]="display$ | async" modal="modal" width="500" height="600" responsive="true" [resizable]="false" [closable]="false">
<financial-flowdialog #myfinancialflowdialog (onCloseDialog) ="closeDialog()" [flowdata]="selectedFlows$ | async"></financial-flowdialog>
</p-dialog>
在第一个模式对话框中单击按钮时,应打开第二个对话框。嵌套对话框的定义如下:
<p-dialog header="Title" [(visible)]="display" [appendTo]="body" *ngIf="display" modal="modal" width="500" height="600" responsive="true"
[resizable]="false" [closable]="false">
<div class="container-fluid">
<form (ngSubmit)="onSubmit()">
<div class="pull-right top-buffer ">
<button type="button" class="btn btn-primary" (click)="closeDialog()">Cancel</button>
<button type="submit" class="btn btn-primary">Select</button>
</div>
</form>
</div>
</p-dialog>
<button type="button" #mybtn [value]="value" ngDefaultControl [formControlName]="key" [id]="key" [ngStyle]="style" (click)="openDialog()">{{label}}</button>
我可以打开第一个对话框,但是当我单击按钮打开第二个对话框时,对话框的内容显示正常 div。下面 html 呈现:
<section>
<div id="nestediag" ng-reflect-form="[object Object]" class="ng-pristine ng-invalid ng-touched">
<!--template bindings={
"ng-reflect-ng-if": "true"
}--><p-dialog header="Title" height="600" modal="modal" responsive="true" width="500" ng-reflect-visible="true">
<div class="container-fluid">
<form class="ng-untouched ng-pristine ng-valid">
<div class="pull-right top-buffer ">
<button class="btn btn-primary" type="button">Cancel</button>
<button class="btn btn-primary" type="submit">Select</button>
</div>
</form>
</div>
</p-dialog>
<button ngdefaultcontrol="" type="button" value="Select a payee" ng-reflect-name="flowpayee" ng-reflect-ng-style="[object Object]" ng-reflect-value="Select a payee" ng-reflect-id="flowpayee" id="flowpayee" class="ng-pristine ng-valid ng-touched" style="width: 100%;">Select a payee</button>
</div>
</section>
定义一个 componentref 变量并使用 [appendTo]="Componentref" 解决问题。 查看讨论 https://github.com/primefaces/primeng/issues/656
您可以通过使用 appendTo 属性将第二个对话框附加到文档正文来解决此问题,例如
<p-dialog appendTo="body">
...
</p-dialog>