我正在建立一个角度2应用程序,并使用PrimeNg p-dialog建立一个对话框模态窗体。我注意到在某些情况下,对话窗口显示在屏幕的最左侧(而不是居中)。但是,在拖动浏览器窗口时,对话框会正确居中。
我使用了一个非常简单的对话框(根据primeng documentation),然后将显示设置为true:
<p-dialog header="Title" [(visible)]="display">
Content
</p-dialog>
为什么对话框从一开始就没有居中的任何想法?
答案 0 :(得分:5)
这对我有用:
从组件中,我像这样获得对话框的引用:
HeaderComponent
在导致对话框打开的函数中,我在setTimeout中调用center方法。
import { Dialog } from 'primeng/dialog';
...
@ViewChild(Dialog) dialog;
答案 1 :(得分:1)
在进一步调查后,我发现问题是对话框在ngIf中被包围。删除后,定位得到纠正。
答案 2 :(得分:1)
我遇到了类似的问题。对话框位置位于屏幕的最右侧。
在我的情况下,我使用了响应属性,因此我必须为width属性设置一个特定的宽度。
<p-dialog
width="640"
modal="modal"
dismissableMask="true"
[responsive]="true"
[(visible)]="display">