2 回答

TA貢獻1818條經驗 獲得超8個贊
show變量是全局的,更新顯示值將反映所有app-field組件,因此您需要單獨確定并指定每個組件的顯示/隱藏變量。
為此,您應該在字段對象內添加一個顯示成員,如下所示:
<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>
也找到了類似的解決方案,檢查這個答案

TA貢獻1780條經驗 獲得超4個贊
我只需要在設置為可見時將組件附加到 DOM。
父組件內部:
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
這會在is時破壞組件false
,這正是我在這種情況下所需要的。
添加回答
舉報