0

我一直在为表格网格使用 ng2-smart-table 插件。有一个Add new按钮可以将条目添加到表格中。

但我只想'Add new'从外部按钮触发事件(可能在表格顶部但不在表格内)。ng2-smart-table 中已经有一个功能与我的要求完全相反。这可以通过使用'mode:external'.

目前这是开放的,他们的Github 页面是一个问题。

如果他们没有 Ng2-smart-table 的选项,是否可以将事件绑定到 Angular 6 中的其他按钮(外部)?如果是这样,我该怎么做?

4

3 回答 3

2

您可以通过 DOM 对象事件触发 ng2-smart-table 的创建事件。

假设我的 ng2-smart-table 的添加按钮设置

add: {
      addButtonContent : '<span class="add"><i class=""></i></span>',
      createButtonContent:'<i class="far fa-save"></i>',
      cancelButtonContent: '<i class="fas fa-times"></i>',
      confirmCreate: true,
    }

然后点击您的外部按钮触发点击 ng2-smart-table 中的“添加”按钮,如

onAdd(event) {
    $(".add").click();   
  }
于 2018-08-08T16:23:23.993 回答
0

您需要使用 LocalDataSource 或 ServerDataSource。

我有同样的问题,在尝试了一些例子之后,我在这里看到了一个好的例子。在这部分代码中,他们使用数据源方法load(data) 和 source(LocalDataSource):

constructor(protected service: BasicExampleLoadService) {
   this.source = new LocalDataSource();

   this.service.getData().then((data) => {
     this.source.load(data);
   });
}

然后我尝试使用我的代码并对 LocalDataSource 执行相同的操作,但是要在表中添加一行,我这样做了:

this.source.add({
  name: 'name',
  description: 'desc',
  numQuestions: '8',
});
this.source.refresh();

它对我有用。我希望它有所帮助。

于 2018-08-14T23:28:14.400 回答
-1

试试看:在你的 html 上:

<button (click)="addRecord()">Add</button> <ng2-smart-table #smartTable [settings]="settings" [source]="source"></ng2-smart-table>

在您的组件上: @ViewChild('smartTable') smartTable; . . . addRecord() { this.smartTable.grid.createFormShown = true; this.smartTable.grid.getNewRow(); }

于 2018-12-22T15:08:02.803 回答