Я работаю над SPA, созданным с использованием Angular 8. В представлении у меня есть таблица, в которой я отображаю все данные из бэкэнда и перебираю их, используя цикл ngFor.Это отлично работает.На кнопке удаления я написал логику, согласно которой, когда пользователь нажимает на кнопку, он показывает пользователю сообщение Вы уверены, что хотите удалить , когда пользователь принимает, он удаляет строку.
Проблема в том, что при нажатии кнопки открываются все строки и показывается сообщение.Я хочу, чтобы на нажатой кнопке отображалось только сообщение , а не все кнопки .
Show.component.html
<table class="table table-dark table-hover">
<thead>
<tr>
<th>Firstname</th>
<th>Age (Years)</th>
<th>Gender</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let user of userData">
<td>
{{ user.name}}
</td>
<td>
{{ user.age}}
</td>
<td>
{{ user.gender}}
</td>
<td>
<button class="btn btn-primary" (click)="edit(user.id)">Edit</button>
<span *ngIf="confirmDelete">
<span> Are you sure you want to delete ?</span>
<button class="btn btn-danger" (click)="deleteUser(user.id)">Yes </button>
<button class="btn btn-primary" (click)="confirmDelete=false">No </button>
</span>
<button *ngIf="!confirmDelete" class="btn btn-danger" (click)="confirmDelete=true">Delete</button>
</td>
</tr>
</tbody>
</table>
Show.component.ts
import { Component, OnInit , ViewChild, ElementRef} from '@angular/core';
import { SharedService } from 'src/app/Services/shared.service';
import { AuthService } from 'src/app/Services/auth.service';
import { Router } from '@angular/router';
import { Observable } from 'rxjs';
import { SnotifyService } from 'ng-snotify';
@Component({
selector: 'app-show',
templateUrl: './show.component.html',
styleUrls: ['./show.component.css']
})
export class ShowComponent implements OnInit {
public userData : any[];
public error = null;
constructor(
private Shared : SharedService,
private Auth:AuthService,
private router: Router,
private Notify:SnotifyService
) { }
ngOnInit() {
this.Shared.checkAll$.subscribe(message => this.userData = message);
}
//delete user
deleteUser(id:number){
return this.Auth.delete(id).subscribe(
data => console.log(data),
error => console.log(error)
);
}
}