我正在使用Ember开发一个项目,我有一个表组件。它是在HTML / Handlebars中创建的,并使用jquery初始化为DataTable。
当初始化为Datatable时,表不再响应页面上queryParams的refreshModel: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结果”#39;小部件或需要很长时间才能更新。如果不破坏表,我会收到如下错误:
DataTables warning: table id={id} - Cannot reinitialise DataTable.
对于描述here
的Datatables库的限制欢迎思考