2017-08-03 17 views
2

我有表primeNG:如何防止點擊行中的一列 - primeNG dataTables?

<p-dataTable [value]="cars" selectionMode="single" 
(onRowSelect)="onRowSelect($event)"> 
    <p-column field="vin" header="Vin"></p-column> 
    <p-column field="year" header="Year"></p-column> 
    <p-column field="brand" header="Brand"></p-column> 
    <p-column styleClass="grid-col-btn" [style]="{'width':'58px'}"> 
    <ng-template let-gateway="rowData" pTemplate="body"> 
    <button type="button" class="btn btn-default btn-flat" 
(click)="deleteCarsFromList(car)"><i class="fa fa-trash-o"></i> 
    </button> 
    </ng-template> 
    </p-column> 
</p-dataTable> 

因爲我使用的字體真棒圖標內按鈕點擊後的動作不能正常工作。當我直接點擊圖標時,我無法觸發方法(點擊),因爲動作來自(onRowSelection)。 如何防止在表格中點擊此特定列?可以肯定的是,我每次使用方法添加到按鈕不是整個表。

+1

你是說你的'deleteCarsFromList(汽車)'方法不會被調用? – BillF

+0

當我點擊按鈕的邊框時正在調用,但是如果我直接點擊不調用的圖標 – Italik

回答

1

我從共享代碼中可以看到的一個問題是,您的<ng-template>正在使用let-gateway來分配模板變量,但在模板中使用的是car

I have provided a plnkr that shows it working correctly

+0

這僅僅是一個例子。 但如何阻止整個最後一列?所以,當我點擊這一列時,行的顏色不會改變。 – Italik

+0

你是說當你點擊列中的其他任何地方時,你不想選擇該行嗎? – BillF

+0

是的。因爲'selectionMode =「single」「'適用於每一列。我想阻止這個點擊拉斯專欄。 – Italik