Показать переменную является общей для всех элементов.Таким образом, весь пользовательский интерфейс включен.Используйте индекс использования для исправления, как показано ниже
<li fxLayout="column" class="field-list-item filters" *ngFor="let eachColumn of fieldViewList;let i = index"
(click)="fieldSelect(eachColumn)">
<div fxLayout="row">
<div class="title-container">
<span class="title">{{eachColumn}}</span>
</div>
<div class="delete-field hide" (click)="showDeleteConfirmation(i)">Del</div>
</div>
<div fxLayout="column" *ngIf="show === i" id="{{i}}">
<span> Please confirm if you want to delete this field view. This operations can not be undone. </span>
<div class="confirmation-button-container">
<button (click)="cancelConfirmation($event)">Cancel</button>
<button (click)="deleteField($event,eachColumn)">Delete</button>
</div>
</div>
</li>
Компонент должен быть изменен следующим образом
export class AppComponent {
name = 'Angular';
fieldViewList = ['field1','field2','field3','field4','field5'];
public show: number;
deleteField(e, column) {
e.stopPropagation();
console.log('deleteField() : ', e);
console.log('column : ', column);
}
showDeleteConfirmation(index: number) {
console.log('showDeleteConfirmation');
this.show = index;
}
cancelConfirmation(index: number) {
console.log('cancelConfirmation');
this.show = index;
}
fieldSelect(column) {
console.log('FieldSelect() : ', column);
}
}