Primeng служба подтверждения нескольких звонков - PullRequest
0 голосов
/ 20 декабря 2018

Я использую PrimeNg с Angular 6 для создания окна подтверждения удаления элемента из формы и сохранения всех изменений, внесенных в форму.Когда

delete() {
  this._confirmationService.confirm({
     message: 'Delete Item?',
     key: 'delete',
     accept: () => {
       // code to delete row
     }
  });
}

submit() {
  this._confirmationService.confirm({
     message: 'Save Changes',
     key: 'submit',
     accept: () => {
       // code to save changes
     }
  });
}

html

<button pButton (click)="delete()"></button>
<button pButton (click)="submit()"></button>

<p-confirmDialog key="delete"></p-confirmDialog>
<p-confirmDialog key="submit"></p-confirmDialog>

Когда клавиша не используется, обе кнопки вызывают функцию подтверждения подтверждения.При использовании ключей кнопка отправки вызывает подтверждение отправки, но при принятии застревает в цикле, а функция удаления вызывает подтверждение отправки, а затем, в случае отклонения, вызывает подтверждение удаления.

Что мне нужно сделатьпоэтому вызывается только служба подтверждения, относящаяся к этой функции?

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

Попробуйте этот код:

HTML:

<button type="button" (click)="delete()" pButton icon="pi pi-check" label="Delete"> 
</button>

<button type="button" (click)="submit()" pButton icon="pi pi-times" label="Submit"> 
</button>

<p-confirmDialog ></p-confirmDialog>

TS:

submit() {
    this.confirmationService.confirm({
        message: 'Are you sure that you want to proceed?',
        header: 'Confirmation',
        icon: 'pi pi-exclamation-triangle',
        accept: () => {
            //message here
        },
        reject: () => {
            //message here
        }
    });
}

delete() {
    this.confirmationService.confirm({
        message: 'Do you want to delete this record?',
        header: 'Delete Confirmation',
        icon: 'pi pi-info-circle',
        accept: () => {
            //message here
        },
        reject: () => {
            //message here
        }
    });
}
0 голосов
/ 14 марта 2019

Вы должны определить тип кнопок как «кнопку», это будет препятствовать тому, чтобы ваш браузер выбирал тип (IE обычно выбирает тип кнопки, в то время как другие выбирают submit).Я бы также предложил переименовать вашу функцию отправки, так как присвоение имени этой отправке может переопределить событие отправки по умолчанию, к которому привязаны кнопки отправки.

...