code: function (tableState, dataTablesCallback, dataTablesSettings) {
      this.collection.setSearch(tableState.search.value ? tableState.search.value : null)
      this.collection.unsetRecordCount()
      this.renderFilters()
  
      // Get record count first because it needs to be passed into the collection.fetch callback
      this.collection.getRecordCount().then(_.bind(function (recordCount) {
        if (!this.recordsTotal) {
          this.recordsTotal = recordCount
        }
        var recordsTotal = this.recordsTotal // for use in callback below
  
        this.collection.setOffset(tableState.start || 0)
        this.collection.setLimit(tableState.length || 25)
  
        if (tableState.order.length) {
          this.collection.setOrder(tableState.columns[tableState.order[0].column].data + ' ' + tableState.order[0].dir)
        }
  
        this.collection.fetch({
          success: function (collection, response, options) {
            dataTablesCallback({
              data: collection.toJSON(),
              recordsTotal: recordsTotal,
              recordsFiltered: recordCount
            })
          }
        })
      }, this))
    }
docs: Adjust collection using table state, then pass off to collection.fetch with datatables callback