Angularjs DataTable表格自动刷新

Angularjs DataTable表格自动刷新

前盐
在angularjs中使用了DataTable,但是数据不会自动刷新,看了一下文档,发现了可以使用ajax重新加载就可以了。

开始
这是DataTable的信息

	// 如果不想使用fnDestory(),可以在里面使用destory 在每次生成表数据时,都销毁一次。
	$('#wifilistmessage').dataTable().fnDestroy();
    wifilisttable = $('#wifilistmessage').DataTable( {
        paging: true,
        iDisplayLength:10,
        aLengthMenu:[10,15],
        dom:'ftilp',
        //destory:true,
        oLanguage:{
              sInfo:"显示第_START_至_END_项结果,共_TOTAL_项",
              sLengthMenu:"每页显示_MENU_项结果",
              sSearch:'搜索:',
              oPaginate : {
                    "sFirst" : "首页",
                    "sLast" : "尾页",
                    "sPrevious" : "上一页",
                    "sNext": "下一页",
                      },
              bProcessing:"加载中。。。",
              sEmptyTable: "暂无数据",
           },
        ajax:{
            url:'http://127.0.0.1:5000/wifiinfo',
            dataSrc:'wifiinfo',
            async:false,
        },
        columns:[
           /* {data:"null",
              render:function () {
                return '<input class="wifiname" name="wifiname"  type="checkbox" data-value="1">'
              }
            },*/
            { data: "wifiname" },
            { data: "company" },
            { data: "asset_mac",name:'asset_mac'},
            { data: "encrpy"},
            { data: "avg_signal"},
            { data: "channel"},
            { data: "status"},
        ]
    });

要做到自动刷新,我的思路是加一个定时,然后定时让dataTable的ajax 重新加载接口数据。

var i=1;
    var time1 = $interval(function () {
        //console.log(bluemessagetable);
        bluemessagetable.ajax.reload();
        console.log('times',i+=1);
        }, 10000);
    $scope.$on('$destory',function () {
       $interval.cancel(time1);
    });

这样就达到了自动刷新的目的啦。
有其他方法的朋友请留言,一起学习进步

发布了17 篇原创文章 · 获赞 15 · 访问量 1373

猜你喜欢

转载自blog.csdn.net/wuyou1995/article/details/103393968