首页 > 解决方案 > 使用 DataTables 时如何维护 Ember Data 双向绑定?

问题描述

我正在使用 Ember 开发一个项目,并且我有一个表格组件。它在 HTML/Handlebars 中创建并使用 jquery初始化为DataTable 。

当初始化为 Datatable 时,该表不再响应 refreshModel:页面上的 queryParams 为 true,并且 Ember Data 的双向绑定丢失。这对我来说很重要,所以我想知道是否有办法两全其美?

component.js 中的 jquery 是:

import Component from '@ember/component';

export default Component.extend({

  model: null,

  didInsertElement() {
    let table = $('#resultsTable').DataTable({
      dom: 'Bfrtip',
      paging: false,
      scrollY: 500
    });


  },

});

该表在初始渲染时是正确的,但更改我的其中一个 queryParams 不会刷新数据。我试图重新渲染如下:

  didUpdateAttrs() {
    let table = $('#resultsTable').DataTable({
      destroy: true,
      dom: 'Bfrtip',
    });
  }

这在一定程度上有效,但会产生一些不良行为,例如表更新但不更新“显示 x 结果”小部件或需要很长时间才能更新。如果不销毁表,我会收到如下错误:

DataTables warning: table id={id} - Cannot reinitialise DataTable. 

这是此处描述的 Datatables 库的限制

欢迎提出想法

标签: javascriptember.jsdatatablesember-data

解决方案


推荐阅读