Я пытался включить функцию щелчка в столбце ng2-smart-table.Кажется, что угловое (click) событие и javascipt "onclick" не отображаются в таблице.Код ниже
public settings = {
selectMode: 'single', //single|multi
hideHeader: false,
hideSubHeader: false,
actions: {
columnTitle: 'Actions',
add: false,
edit: false, // true,
delete: false, // true,
custom: false
},
noDataMessage: 'No data found',
columns: {
IsComplete: {
title:'Status',
type:'html',
filter: false,
valuePrepareFunction: (value) => {
// return value===true ? 'Complete' : 'Pending';
if(value===true){
return '<div class="text-nowrap text-success"><i class="fa fa-check-circle-o"> Complete</i></div>'; // Complete';
//return 'Complete';
} else {
//return 'Pending';
return '<div class="text-nowrap text-warning"><i class="fa fa-exclamation-circle"></i> Pending</div>'; // Pending';
}
}
},
DateCreated: {
title: 'Date created',
type: 'string',
filter: true,
valuePrepareFunction: (date) => {
var raw = new Date(date);
var formatted = new DatePipe('en-EN').transform(raw, 'dd MMM yyyy');
return formatted;
}
},
MemberName: {
title: 'Member',
type: 'string',
filter: true
},
Start: {
title: 'Start date',
type: 'string',
filter: false,
valuePrepareFunction: (date) => {
var raw = new Date(date);
var formatted = new DatePipe('en-EN').transform(raw, 'dd MMM yyyy');
return formatted;
}
},
End: {
title: 'End date',
type: 'string',
filter: false,
valuePrepareFunction: (date) => {
var raw = new Date(date);
var formatted = new DatePipe('en-EN').transform(raw, 'dd MMM yyyy');
return formatted;
}
},
OrderId: {
title: 'Details',
type: 'html',
filter: false,
valuePrepareFunction: (OrderId) => {
return '<a onclick="onCustom($event)" href="/pages/order/' + OrderId + '"><i class="fa fa-search"></i> view</a>'; // Complete';
}
}
Интересующий столбец - событие «OrderId», которое будет запущено ниже, однако я также хочу, чтобы пользователь мог щелкнуть правой кнопкой мыши ссылку и выбрать открыть новую вкладку и т. Д.отсюда и ссылка, и функция щелчка.
onCustom(event) { this.router.navigateByUrl('/pages/order/' + event.data.OrderId); }
Используя инструменты разработчика, я вижу, что onclick или (щелчок) игнорируется, и все, что я получаю, это ссылка;
<a href="/pages/order/411"><i class="fa fa-search"></i> view</a>
Обновление: Я также думал об использовании столбца настраиваемых действий, чтобы воспользоваться вызовом функции "onCustom ()", но не смог получить значение valuePrepareFunction для отображения (только получение свойства title)) или ссылаться на данные строки в свойстве title следующим образом.
custom: [{
name: 'view',
title: 'View ',
type: 'html',
valuePrepareFunction:(row)=>{
return `<a title="See Detail Product "href="Your api key or something/${row.OrderId}"> <i class="ion-edit"></i></a>`
},
}],