удалить тот же выбранный ряд при использовании подтверждения массажа в PrimeNG - PullRequest
0 голосов
/ 02 декабря 2019

В моем угловом проекте и с помощью таблицы primeNg я хочу удалить строку после подтверждения, поэтому у каждой строки есть кнопка удаления, когда при нажатии на нее отображается подтверждающее сообщение, но проблема при нажатии кнопки подтвержденияпоследняя строка в таблице удалена, а не та же строка.

Это мой HTML :

 <button class="btn btn-danger" (click)="showConfirm()"><span class="fa fa-trash"></span></button>

<p-toast position="center" key="c" (onClose)="onReject()" [modal]="true" [baseZIndex]="5000">
    <ng-template let-message pTemplate="message">
        <div style="text-align: center">
            <i class="pi pi-exclamation-triangle" style="font-size: 3em"></i>
            <h3>{{message.summary}}</h3>
            <p>{{message.detail}}</p>
        </div>
        <div class="ui-g ui-fluid">
            <div class="ui-g-6">
                <button type="button" pButton (click)="onConfirm(rowData.id)" label="yes" class="ui-button-success"></button>
            </div>
            <div class="ui-g-6">
                <button type="button" pButton (click)="onReject()" label="No" class="ui-button-secondary"></button>
            </div>
        </div>
    </ng-template>
</p-toast>

в components.ts я использую следующие методы:

  showConfirm() { // to show confirm massage
    this.messageService.add({key: 'c', sticky: true, severity:'warn', summary:'!Delete confirm', detail:'Are you shur to dlelete this client '});
  }

 onConfirm(id:Clients) {
    this.Service.deleteClient(id).subscribe(res => {})

  onReject() {
    this.messageService.clear('c');
}

ссылка на primeNg: [https://www.primefaces.org/primeng/#/toast]

Обновление

при попытке задать параметр rowData.id в методе showConfirm в HTML и в component.ts showConfirm(id:Clients) и использовании объединения в деталях массажа, показывающих выбранную строку,

HTML

<button class="btn btn-danger" (click)="showConfirm(rowData.id)"><span class="fa fa-trash"></span></button>

component.ts

showConfirm(id:Clients) { // to show confirm massage
    this.messageService.add({key: 'c', sticky: true, severity:'warn', summary:'!Delete confirm', detail:'Are you shur to dlelete this client '+id});
  }

но я не знаю, как передать тот же параметр из showConfirm(id:Clients) в onConfirm() метод.

Ответы [ 2 ]

1 голос
/ 02 декабря 2019

Альтернативным способом является использование 'Confirm Dialog' в primeng.
Документация Primeng ConfirmDialog

1 голос
/ 02 декабря 2019

Ну, я не знаю, правильно ли я понял. Но я бы так и сделал:

1-decalre переменная типа deleteCandidate.

2-обновите ее методом showConfirm.

showConfirm(id:Clients) { // to show confirm massage
this.deleteCandidate=id;
    this.messageService.add({key: 'c', sticky: true, severity:'warn', summary:'!Delete confirm', detail:'Are you shur to dlelete this client '+id});
  }

3-passэто на Подтверждение.

 onConfirm(id:Clients)<--this parameter is useless
 {
        this.Service.deleteClient(this.deleteCandidate).subscribe(res => {})
...