如何为ng2-smart-table添加新的自定义按钮

时间:2019-04-25 03:19:24

标签: angular typescript ng2-bootstrap

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

enter image description here

但是,我想在表的每一行末尾添加一个名为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:''
},

1 个答案:

答案 0 :(得分:3)

定义这样的设置。


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(所选行的对象)将传递到实例所属行所在的组件