【发布时间】:2020-08-24 02:07:56
【问题描述】:
我正在使用 Ajax 从数据库中获取数据,并使用 VueJS 在 HTML 表中显示它们。我让用户对数据执行一些操作(添加新行、编辑、删除)。它工作得很好。
我的问题是我想放置一个 DataTable 以允许用户执行研究并对表中的行进行排序。我只是在做: $('my-table').DataTable();在 Vue 已经显示的 HTML 表格上。它一直有效,直到我想对我的数据进行更改。它们在 Vue 实例中已更改,但未在 DataTable 中呈现。
现在我尝试在我的 DataTable 上使用 destroy() 方法然后重新制作和实例化,我有一个奇怪的结果,这是我想要更新我的 DataTable 时的代码:
$('my-table').DataTable().destroy();
// Here I'm getting the data and put it in the Vue instance
// Once it's done I simply re-mount the DataTable :
$('my-table').DataTable();
并且它不会更新,它会将已经存在的行加倍或显示我插入的行,直到我更改当前页面。
更奇怪的是,如果我这样做了:
$('my-table').DataTable().destroy();
// Here I'm getting the data and put it in the Vue instance
所以现在它是我页面上的一个简单的 HTML 表格,用 Vue 正确更新,我在控制台中输入:
$('my-table').DataTable()
而且效果很好。我不明白,因为它和上面的完全一样,只是我是从控制台输入的,对吧?
我希望它足够清楚。已经谢谢了!
【问题讨论】:
标签: javascript jquery vue.js datatables