ng2-smart-таблица открывает всплывающее окно при редактировании

Я хотел бы открыть всплывающую страницу на ng2-smart-table компонент, когда пользователь нажимает кнопку редактирования и новую кнопку, но я не могу поймать эти события.
Например, я не могу поймать onEditRowSelect($event) функция, у вас есть идеи?
Короче говоря, я хотел бы удалить поле ввода редактирования внутри таблицы и открыть всплывающую страницу

<ng2-smart-table 
  [settings]="settings" 
  [source]="data"                
  (editConfirm)="onEditRowSelect($event)">
</ng2-smart-table>

Вот мой ng2-smart-table настройки

this.settings = {

  columns: {
  },
  actions: {
    position: 'right',
    add: true,
    edit:true,
    editable:false,
    columnTitle: '',
  },
  add: {
    addButtonContent: 'NEW',                        
  },
  edit: {
    editButtonContent: 'EDIT',                        
    position: 'right',
  }      
}    

onEditRowSelect(event) {
  console.log(event.data.nombre);             
}

1 ответ

Во-первых, вам нужно изменить опцию "mode" в настройках файла ts

settings = {mode: 'external'}

Теперь добавьте HTML в этот код

<ng2-smart-table [settings]="settings" [source]="data" (edit)="onEditRowSelect($event)"></ng2-smart-table>

Теперь в ts файле создайте эту функцию onEditRowSelect(событие), вы найдете там весь контент

onEditRowSelect(event) { console.log(event); }

Если вы хотите открыть модал, то сначала создайте компонент, а затем передайте данные в этот модал. Если вы не знаете, как создать модал, перейдите по этой ссылке материал диалога

У меня та же проблема. И я решил добавить этот код в this.settings.

edit: {
   confirmSave : true
}

HTML:

<ng2-smart-table
    [settings]="settings"
    [source]="source"
    (createConfirm)="onCreateConfirm($event)"
    (deleteConfirm)="onDeleteConfirm($event)"
    (editConfirm)="onEditConfirm($event)"></ng2-smart-table>

TS:

  onCreateConfirm(event) {
    console.log('event', event);
  }
  onDeleteConfirm(event) {
    console.log('event', event);
  }
  onEditConfirm(event) {
    console.log('event', event);
 }

настройки:

export let settings = {
  columns: {
    id: {
      title: 'ID',
      filter: true
    },
    name: {
      title: 'Full Name',
      filter: true
    },
  },
  edit: {
    confirmSave: true,
    editButtonContent: '<i class="ti-pencil text-info m-r-10"></i>',
    saveButtonContent: '<i class="ti-save text-success m-r-10"></i>',
    cancelButtonContent: '<i class="ti-close text-danger"></i>'
  },
  delete: {
    confirmDelete: true,
    deleteButtonContent: '<i class="ti-trash text-danger m-r-10"></i>',
    saveButtonContent: '<i class="ti-save text-success m-r-10"></i>',
    cancelButtonContent: '<i class="ti-close text-danger"></i>'
  },
  add: {
    confirmCreate: true
  }
};

Надеюсь, поможет

Другие вопросы по тегам