Отключить выбор в определенном столбце в ngx-datatable

У меня есть ngx-datatable с 4 столбцами данных и одним столбцом с кнопкой удаления для удаления строки из таблицы, как показано ниже.

введите описание изображения здесь

HTML код

<ngx-datatable
*ngIf="!isLoading"
#table
class="data-table"
[scrollbarH]="true"
[rows]="data"
[columnMode]="'force'"
[headerHeight]="50"
[footerHeight]="50"
[rowHeight]="'auto'"
[limit]="limit"
[selected]="selected"
[selectionType]="'single'"
(select)='onSelect($event)'>

    <ngx-datatable-column *ngFor="let columnData of columns" name={{columnData.name}} prop={{columnData.prop}}>
       <ng-template let-column="column" let-sort="sortFn" ngx-datatable-header-template>
          <span class="datatable-header-column datatable-header-cell-label" (click)="sort()"><i class="{{columnData.icon}}" ></i> {{columnData.name}}</span>
       </ng-template>
    </ngx-datatable-column>

    <ngx-datatable-column [sortable]="false" [maxWidth]="70">
        <ng-template let-column="column"  let-row="row" ngx-datatable-cell-template>
            <button class="btn btn-danger btn-mini" *ngIf='!row.unAssigning' (click)="onDelete(row, column)">
                <i class="icofont icofont-trash"></i>
            </button>
            <img class="mini-spinner" *ngIf="row.unAssigning" src="../assets/img/busy-red.gif">
        </ng-template>
    </ngx-datatable-column>     

</ngx-datatable>

TS файл

onSelect({
    selected
}) {
    this.router.navigate(['/update', selected[0].id]);
}

В настоящее время при выборе строки перенаправляет пользователя на другую страницу. Но мне нужно удалить функцию перенаправления при нажатии кнопки удаления в таблице. Перенаправление должно выполняться только при нажатии на столбец данных.

Как я могу этого добиться?


person Bishan    schedule 02.10.2018    source источник


Ответы (1)


Если я понял вашу проблему, вы хотите нажать кнопку удаления, не перенаправляя пользователя с помощью функции onSelect.

Вы можете попробовать следующий код:

<button class="btn btn-danger btn-mini" *ngIf='!row.unAssigning' (click)="$event.preventDefault(); $event.stopPropagation(); onDelete(row, column)">
    <i class="icofont icofont-trash"></i>
</button>
person Tommy    schedule 02.10.2018
comment
Мой вариант использования был немного другим, для меня это был элемент ‹select›. Это все еще работало как (click)="$event.preventDefault(); $event.stopPropagation();" (change)="selectFunction($event.target.value)" - person Kyle Burkett; 09.05.2019