2 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
show變量是全局的,更新顯示值將反映所有app-field組件,因此您需要單獨(dú)確定并指定每個(gè)組件的顯示/隱藏變量。
為此,您應(yīng)該在字段對(duì)象內(nèi)添加一個(gè)顯示成員,如下所示:
<ng-container *ngFor="let field of fields">
<button (click)="field.show = !field.show">Show</button>
<ng-container *ngIf="field.show">
<app-field [fieldInfo]="field"></app-field>
</ng-container>
</ng-container>
也找到了類(lèi)似的解決方案,檢查這個(gè)答案

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
我只需要在設(shè)置為可見(jiàn)時(shí)將組件附加到 DOM。
父組件內(nèi)部:
public?showField:?any?=?{};
然后在父組件模板中:
<ng-container *ngFor="let field of fields">
?<button (click)="showField[childField.id] = !showField[childField.id]">Show</button>
?<ng-container *ngIf="showField[childField.id]">
? <app-field [fieldInfo]="field"></app-field>
?</ng-container>
</ng-container>
*ngIf
這會(huì)在is時(shí)破壞組件false
,這正是我在這種情況下所需要的。
添加回答
舉報(bào)