修复 modal from bootstrap(仅删除第一行)问题

fix modal from bootstrap ( delete only the first row ) problem

这是我的模态:

<tbody>
    <tr *ngFor="let avenant of Avenants | orderBy: 'id' ">
        <td>{{avenant.categorie?.nom}}</td>
        <td>{{avenant.numeroPolice}}</td>
        <td>{{avenant.nom}}</td>
        <td>{{avenant.dateDebut|date : 'dd/MM/yyyy' }}</td>
        <td>
            <button class="btn btn-danger btn-sm" type="button" data-toggle="modal" data-target="#deleteAvenant"><i class="fa fa-trash"></i></button>
            <!-- Modal -->
            <div class="modal fade" id="deleteAvenant" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
                <div class="modal-dialog modal-dialog-centered" role="document">
                    <div class="modal-content">
                        <div class="modal-header">
                            <h5 class="modal-title" id="exampleModalLongTitle">Modal title</h5>
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                <span aria-hidden="true">&times;</span>
                            </button>
                        </div>
                        <div class="modal-body">
                            ...
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                            <button type="button" class="btn btn-primary" data-dismiss="modal" (click)="deleteAvenant(avenant.id)">Supprimer</button>
                        </div>
                    </div>
                </div>
            </div>
        </td>
    </tr>
</tbody>

问题是它总是删除第一行, 但是当我删除模式,并尝试只使用它工作的按钮时!

这是 ts 中的 deleteAvenant() :

    deleteAvenant(id:number){
      this.policeService.deleteAvenant(id).subscribe(
        data =>  {
          console.log(id);
        },
        error=> console.log(error));
        }

如果你的模式要保持不变,也许你应该简单地将它从那个循环中取出(和 table)。

现在,我们需要以某种方式让模式知道应该删除哪个项目。

为此,在 TS 中设置一个变量,我们可以在其中保存要删除的记录的 ID,并在单击按钮时设置它。

TS

deleteAvenantId = 0;

HTML

 <button (click)="deleteAvenantId = avenant.id" class="btn btn-danger btn-sm" type="button"  data-toggle="modal" 
                   data-target="#deleteAvenant"><i class="fa fa-trash"></i></button>

然后模态变为:

<button type="button" class="btn btn-primary" data-dismiss="modal"  (click)="deleteAvenant(deleteAvenantId)">Supprimer</button>

看看这是否有帮助。