问题描述
我正在使用以下代码更新两个单元格的值
/*-----------------Agent Presence Websocket Starts-----------------------------*/
function presenceConnect(existing_table){
var agentPresenceSocket = new ReconnectingWebSocket(wsstart+domain+"/agent-presence/");
agentPresenceSocket.onmessage = function(e){
data = JSON.parse(e.data)
console.log(data);
var availability = data['availability'];
var id = data['id'];
var upn = data['upn'];
var timeInStatus = data['timeInStatus'];
var rowId = $('#agent-table').dataTable()
.fnFindCellRowIndexes(upn,0);
if(rowId.length>0){
if(yellowArray.includes(availability)){
existing_table
.cell(rowId,6)
.data('<i class="fa fa-circle fa-lg yellow-light"></i>'+availability)
.draw(false);
};
if(greenArray.includes(availability)){
existing_table
.cell(rowId,6)
.data('<i class="fa fa-circle fa-lg green-light"></i>'+availability)
.draw(false);
};
if(redArray.includes(availability)){
existing_table
.cell(rowId,6)
.data('<i class="fa fa-circle fa-lg red-light"></i>'+availability)
.draw(false);
}
if(availability=="DoNotdisturb"){
existing_table
.cell(rowId,6)
.data('<i class="fa fa-ban fa-lg red-light"></i>'+availability)
.draw(false);
}
existing_table
.cell(rowId,7)
.data(timeInStatus)
.draw(false);
console.log("Time in status updated");
};
};
}
/*-----------------Agent Presence Websocket Ends-----------------------------*/
对于第 6 个单元格的值正在更改,但对于第 7 个单元格,我收到此错误,尽管两个单元格的代码相同
Uncaught TypeError: existing_table.cell(...).data(...).draw is not a function
P.S: exisiting_table
是 DataTable() 的一个实例
样本数据
{ upn: "abc@example.com",id: 613,activity: "Busy",availability: "Busy",time: "3:40:33" }
解决方法
我将数据记录到浏览器的控制台中。我得到的如下:
{ upn: "abc@example.com",id: 613,activity: "Busy",availability: "Busy",time: "3:40:33" }
为了收集时间,我使用了错误的键名,即 timeInStatus
.因此data['timeInStatus']
的值为undefined
。这就是 existing_table.cell().data().draw()
抛出错误的原因。
当我使用正确的密钥名称,即 time
时,我没有收到任何错误。