DynamicDialog 自定义模板引起对话框的再油漆
作者: bernhardsmartpoint创建于 2026年3月11日更新于 2026年9月8日
标签Type: BugResolution: Stale
□ 描述错误
DynamicDialog 使用自定义内容模板时执行无意再油漆
□再现者.
(https://stackblitz.com/edit/GitHub-fpcqwxcz) (中文(简体) ).
□ 实际
** 当使用自定义内容模板时,输入动画点火了秒**和所描述的任何情景。 这种再油漆导致了对话中奇怪的闪烁行为. 通过在口罩元件上观察 " p-overlay-mask-enter-活性 " 两次/多次复制。
** 重新油漆可由三种情况触发:**
- ** 没有任何互动** - 复漆在对话框打开后不久自动发生, 没有任何鼠标交互
- 在对话中点击- 如果再油漆还没有发生,点击对话框内容内的任何地方触发它
- ** 点击关闭按钮** - 如果重新油漆还没有发生,点击 QQ 关闭按钮触发它
** 说明:** 此错误在使用默认内容模板( 没有“ templates” 选项)时发生 ** not ** 。
□可能的根本原因(观察)
根据对代码的分析,似乎存在一个问题,即** might** 可能造成`放弃任务'的虚假-真实循环:
** 意见1:dialog.close()' 设置可见'直接** (`dialog.ts'):
//目前执行情况
关闭( 事件 ) {
此. 可见 = 假; // 设置内部状态
3⁄4 ̄ ̧漯B
事件。 预防
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?** 意见2:DynamicDialog.on Visible Change ()' 从未设置 ' This. visible = false' (dialog.ts'):
//目前执行情况
关于可视变化( 可见:布尔) {
如果 (! 可见){
ưμ㼯A 可见=虚假
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?** 可能出现的问题流量:**
关闭( ) 调用
^ 可见变化(假相) ^ 动态数字化. 可视变化()
+ 对话框 Ref. Close () → 动态Dialog. close () → CD. mark ForCheck ()
□ 在Leave()之后: mapermask.set(假), 在Hide.emit()
^ 在DialogHide()上 ^ 对话框 Ref.dstroy() ^ cd.markForCheck()
• CD重新评价[可见 =“可见”
~ Dynamic Dialog. 可能还是真实的 ~ 永远不设假 ~
^ 对话框. 可见设置器: 可见=真,相遮=假
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}把Mask.set(真)弄虚作假 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}重新来过?
动画可能会再次被点燃QPull Request 链接
无回复( N)
未提交公关的理由
- 缺乏时间
- [ 不确定如何执行固定/特性
- [ 难以理解代码库
- 其它
其他原因:
我一找到使用自定义模板的动态对话框的原始执行中的确切问题,就会加入一个 Pull Request。
• 复制人
https://stackblintz.com/edit/GitHub-fpcqwxcz (中文(简体) ).
环境
** 总理版本:** 21.x ** 角度:** 21.x
没有 . . . . . . .
内容来源: primefaces/primeng