0

我有一个列表组件,其中有一个对话框,其中包含我用于编辑和创建新数据的表单组件。该组件是独立的(在同一个模块中),并在这样的对话框中调用:

<p-dialog header="Header" width="700" [resizable]="false"
[(visible)]="displayDialog"modal="true">
   <app-detail [id]="id"></app-detail>
</p-dialog>

创建和编辑按钮位于列表组件 html 中,当我单击编辑按钮时,应该将一个 id 传递给详细信息组件并加载数据并为我填写表单。但似乎当列表 html 呈现时,细节组件只呈现一次,当我单击编辑按钮时没有响应,没有新的 id 被传递到细节组件中。

我应该怎么办?

4

1 回答 1

1

[(visible)]对话框数据绑定来看,它并没有销毁/创建<app-detail>组件,而是简单地隐藏和显示它。<app-detail>因此,组件只渲染一次是有道理的。

如果您想在<app-detail>每次displayDialog更改时重新创建组件,只需向组件添加*ngIf指令即可。

像这样:

<p-dialog header="Header" width="700" [resizable]="false"
  [(visible)]="displayDialog" modal="true">
   <app-detail [id]="id" *ngIf="displayDialog"></app-detail>
</p-dialog>
于 2018-03-24T12:30:20.297 回答