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);
});
这样就达到了自动刷新的目的啦。
有其他方法的朋友请留言,一起学习进步