Это потому, что вы передаете два аргумента методу onDelete($event, tech)
в шаблоне, но в компоненте onDelete(value: any)
определен только один параметр. Таким образом, значение устанавливается на $event
, которое в данном случае является MouseEvent
, поскольку кнопка привязана к событию click
.
Из документации $ событие и операторы обработки события :
Форма объекта события определяется целевым событием. Если целевое событие является собственным событием элемента DOM, тогда $ event является объектом события DOM со свойствами, такими как target и target.value.
Если вам не нужна информация из объекта $event
, удалите ее из вызова к onDelete()
в шаблоне.
<p-column header="Action">
<ng-template let-tech="rowData" pTemplate="body">
<button type="text" pButton label="Delete" (click)="onDelete(tech)"></button>
</ng-template>
</p-column>
Тогда метод onDelete()
в компоненте получит значение строки таблицы.
public onDelete(value: Tech) {
console.log(value);
this.tableService.deleteRegistrant(value)
.subscribe(
value => {
console.log('[POST] create Registrant successfully', value);
}, error => {
console.log('FAIL to create Registrants!');
},
() => {
console.log('POST Registrants - now completed.');
});
this.submitted = true;
}