首页 > 解决方案 > 如何为 ng2-smart-table 添加新的自定义按钮

问题描述

ng2-smart-table在我的项目中用作表格。您可以在下面看到它。

在此处输入图像描述

但是,我想view在表格的每一行末尾添加一个为此命名的自定义按钮。以及我想在单击view按钮时打开一个新组件。那我应该为此做些什么。我尝试如下。但不是成功。

add: {
  addButtonContent: '<i class="nb-plus"></i>',
  createButtonContent: '<i class="nb-checkmark"></i>',
  cancelButtonContent: '<i class="nb-close"></i>',
  confirmCreate: true
},
edit: {
  editButtonContent: '<i class="nb-edit"></i>',
  saveButtonContent: '<i class="nb-checkmark"></i>',
  cancelButtonContent: '<i class="nb-close"></i>',
  confirmSave: true
},
delete: {
  deleteButtonContent: '<i class="nb-trash"></i>',
  confirmDelete: true
},
view:{
  viewButtonContent:''
},

标签: angulartypescriptng2-bootstrap

解决方案


像这样定义设置。


settings = {
    columns: {
      name: {
        title: 'Title',
      },
      description: {
        title: 'Description',
      },

      customColumn: {
        title: 'Actions',
        type: 'custom',
        filter: false,
        renderComponent: MyCustomComponent,
        onComponentInitFunction(instance) {
          //do stuff with component
          instance..subscribe(data=> console.log(data))
          }
   ...

并像这样定义新的按钮组件,


@Component({
  selector: 'll-button-comp',
  template: ` <button (click)="click.emit(rowData)"> my button</button> `
})

export class MyCustomComponent implements OnInit{
  @Input() rowData: any;
  @Output() click:EventEmitter<any> = new EventEmitter(this.rowData);


  ngOnInit(){

  }
}

请注意,rowData(所选行的对象)将传递给该实例所属行的组件


推荐阅读