初始化映射;或重绘数据表的任何自定义函数

问题描述

请知道如何在重绘 dataTable 时初始化其他没有表格的函数?

如果您在服务器端,这里是如何在每次更改(例如排序、搜索、浏览量)时从数据表中获取数组数据的方法。如果没有服务器端它也可以工作,但您只需要为搜索自定义操作......排序,视图将工作

在我的情况下,我想通过在 DataTables 的每次更改中显示我的 mapMarkers 来使用 dataTables 中的数组。通过 drawCallback 每次都放入 form_data 全局变量

var x_table = $('#myTable')
     
.DataTable({
    paging: true,info: true,searching: true,searchable: true,pageLength: 25,// scrollY: 350,fixedHeader: true,order: [[0,'desc']],// aaSorting: [[0,columnDefs: [
        { name : 'id',targets: 0,type: 'string',},{ name : 'title',targets: 1,// { name : 'status',{ name : 'description',targets: 2,{ name : 'address',targets: 5,{ name : 'lat',targets: 4,{ name : 'lng',targets: 3,// { name : 'gps_status',{ name : 'distance_to',targets: 6,],processing: true,serverSide: true,ajax: {
        url: '{{ path('test_service') }}',type: 'POST',async: false,drawCallback: function() {
 
        window.form_data = this.api().rows().data();
 
        console.log(form_data);
        console.log(form_data[0][0]);
        console.log( 'Records on draw event lenght ->  ' +form_data.length);
        console.log( 'Redraw occurred at: '+new Date().getTime() );
    }
    // rowId: 'id'
})
 
// .on( 'draw',function () {
//     initMap();
// })
 
;

现在我需要为谷歌地图 initMap() 重新初始化函数;在每个 drawCallback 上,但如果我取消注释 .on() 行,则 drawCallback 停止工作但 initMap();将初始化...

我试过这样的事情

$('#myTable').on( 'draw.dt',function () {
 
    initMap();
    alert( 'Table redrawn' );
});

但表停止工作... initMap();将初始化...但表将停止工作... 这里我提供视频

https://drive.google.com/file/d/1qLtXGSUIsp62PE6QLnLTZhC0SKqbCxy1

问题在这里(在视频中)它在第一次排序加载ajax请求后停止......但如果我尝试使用没有服务器端数据的dataTable......问题与第一次排序或页面浏览后相同。 () 函数初始化,dataTable 停止工作...

现在我唯一的解决方案是地图下的按钮:

$( "#updateMap" ).click(function() {
   initMap();
});

和按钮

<button id='updateMap'>Load form_data variable</button>

点击时在变量 form_data 中加载新值并更新地图上的标记。

我想自动执行此操作...不是通过点击事件...但仍在寻找解决方案:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)