在ng2-smart-table angular 2中我想在actions列中添加一个新按钮,点击这个按钮,它将路由到另一个页面 这是添加,编辑和删除按钮,但我试图使这个新按钮,但它不起作用
settings = {
add: {
addButtonContent: '<i class="ion-ios-plus-outline"></i>',
createButtonContent: '<i class="ion-checkmark" ></i>',
cancelButtonContent: '<i class="ion-close"></i>',
confirmCreate: true,
},
edit: {
editButtonContent: '<i class="ion-edit"></i>',
saveButtonContent: '<i class="ion-checkmark"></i>',
cancelButtonContent: '<i class="ion-close"></i>',
confirmSave: true
},
delete: {
deleteButtonContent: '<i class="ion-trash-a"></i>',
confirmDelete: true
},
,如何添加按钮,我在ng2-smart表文档中搜索,我找不到任何与此相关的内容https://akveo.github.io/ng2-smart-table/documentation
答案 0 :(得分:5)
试一试:
在列设置中,添加一列&#34;操作&#34;:
Actions: //or something
{
title:'Detail',
type:'html',
valuePrepareFunction:(cell,row)=>{
return `<a title="See Detail Product "href="Your api key or something/${row.Id}"> <i class="ion-edit"></i></a>`
},
filter:false
},
Id: { //this Id to use in ${row.Id}
title: 'ID',
type: 'number'
},
答案 1 :(得分:5)
在您的设置文件中,输入以下内容
actions: {
edit: false, //as an example
custom: [{ name: 'routeToAPage', title: `<img src="/icon.png">` }]
}
现在你有了一个带有img的自定义routeToAPage按钮。
然后在你的ng2-smart-table标签中,
<ng2-smart-table [settings]="settings" [source]="dataSource" (custom)="route($event)"></ng2-smart-table>
然后你可以创建一个路线功能并做它需要做的事情。
答案 2 :(得分:2)
我遇到了同样的问题,并根据以下示例找到了带有自定义操作的解决方案:basic-example-custom-actions.component
设置:
actions: {
add: false,
edit: false,
delete: false,
custom: [{ name: 'ourCustomAction', title: '<i class="nb-compose"></i>' }],
position: 'right'
},
在模板中:,我们定义了操作所调用的函数
<ng2-smart-table #ourTable [settings]="settings" [source]="source"
(custom)="onCustomAction($event)">
我们需要路由器:
import {Router} from '@angular/router';
...
constructor(private router: Router) {}
然后,我们可以重定向到另一个页面:
onCustomAction(event) {
// alert(`Custom event '${event.action}' fired on row №: ${event.data.id}`);
this.router.navigate(['pages/ourPage']);
}
当用户单击一行时,可以应用相同的内容:
(userRowSelect)="onCustomAction($event)"
答案 3 :(得分:1)
如果您仍在寻找解决方案,我遇到了同样的问题,无法修复它。
恢复发布1.1.0(来自你的package.json)为我做了! 我还发现buttonContent标签适用于编辑和删除,但不适用于添加。
希望这个错误很快得到修复。
答案 4 :(得分:1)
在我的列表组件中
actions: {
columnTitle: 'Actions',
add: false,
edit: false,
delete: true,
custom: [
{ name: 'viewrecord', title: '<i class="fa fa-eye"></i>'},
{ name: 'editrecord', title: ' <i class="fa fa-pencil"></i>' }
],
position: 'right'
},
然后在模板中
<ng2-smart-table class="table table-hover" [settings]="settings" [source]="dataSet"
(deleteConfirm)="onDeleteConfirm($event)" (custom)="onCustomAction($event)">
</ng2-smart-table>
此功能可帮助我确定要执行的自定义操作。
onCustomAction(event) {
switch ( event.action) {
case 'viewrecord':
this.viewRecord(event.data);
break;
case 'editrecord':
this.editRecord(event.data);
}
}
public editRecord(formData: any) {
this.modalRef = this.modalService.open(AddProfileComponent);
this.modalRef.componentInstance.formData = formData;
this.modalRef.result.then((result) => {
if (result === 'success') {
this.loadData();
}
}, (reason) => {
});
}
public viewRecord(formData: any) {
this.modalRef = this.modalService.open(ViewProfileComponent);
this.modalRef.componentInstance.formData = formData;
this.modalRef.result.then((result) => {
if (result === 'success') {
this.loadData();
}
}, (reason) => {
});
}