如何将自定义参数添加到 Angular 5 DataTables

How can add custom parameters to Angular 5 DataTables

我正在开发一个以 PHP 作为后端的 Angular5 项目。我被困在这个水平上。 以下是我的代码:

this.dtOptions = {
  pagingType: 'full_numbers',
  pageLength: 10,
  order: [0, 'desc'],
  serverSide: true,
  processing: true,
  ajax: (dataTablesParameters: any, callback) => {
    that.http
      .post<DataTablesResponse>(
        'http://localhost/api/webapi/',
        dataTablesParameters,{ headers: new HttpHeaders({
          'Content-Type':  'application/json',
          'Authorization': 'token'
        })}
      ).subscribe(resp => {
        that.records = resp.data;
        callback({
          recordsTotal: resp.recordsTotal,
          recordsFiltered: resp.recordsFiltered,
          data: []
        });
      });
  },
  columns: [{ data: 'id' }, { data: 'name' }]
};

正如我在这段代码中观察到的,我正在发送数据表的默认参数 "dataTablesParameters"。如何添加我的自定义参数,如 (entryid) 和 "dataTablesParameters"?

请指导。

我认为无法按如下方式创建父对象:

ParentObj = { dataTablesParameters: _dataTablesParameters , entryid:_entryid }

编辑:所以你的代码看起来像这样

declare interface parentObj : { dataTablesParameters: any , entryid: any }

this.ParentObj = { dataTablesParameters: _dataTablesParameters , entryid:_entryid }

this.dtOptions = {
  pagingType: 'full_numbers',
  pageLength: 10,
  order: [0, 'desc'],
  serverSide: true,
  processing: true,
  ajax: (dataTablesParameters: any, callback) => {
    that.http
      .post<DataTablesResponse>(
        'http://localhost/api/webapi/',
        parentObj,{ headers: new HttpHeaders({
          'Content-Type':  'application/json',
          'Authorization': 'token'
        })}
      ).subscribe(resp => {
        that.records = resp.data;
        callback({
          recordsTotal: resp.recordsTotal,
          recordsFiltered: resp.recordsFiltered,
          data: []
        });
      });
  },
  columns: [{ data: 'id' }, { data: 'name' }]
};

发送 parentObj 而不是您的 http 请求中的 dataTablesParameter。

您只需像这样声明对象:

userData = { token: '', entryid : '' };

并且在调用 ajax 时,您应该使用 Object.assign 合并两个对象,例如:

Object.assign(dataTablesParameters,this.userData)

ajax: (dataTablesParameters:any, callback) => {
        that.http
          .post<DataTablesResponse>(
            'http://localhost/api/webapi/',Object.assign(dataTablesParameters,this.userData),{}).subscribe(resp => {
            that.records = resp.data;
            console.log(resp);
            callback({
              recordsTotal: resp.recordsTotal,
              recordsFiltered: resp.recordsFiltered,
              data: []
            });
          });
      },

查看此完整教程,以便您更好地理解。 Angular 5 Datatables using JSON data with rerender