Tob*_*len 2 javascript debugging console slickgrid
我正在使用平滑网格并使用订阅功能在编辑单元格时获取通知
grid.onCellChange.subscribe(function (e,args) {
console.log(args);
var a = data[args.row];
// var b = args.grid.getItem(args.row);
var c = args.item;
console.log(a);
// console.log(b);
console.log(c);
console.log("Field Edited:"+ cols[args.cell ].field);
$.post('action_updaterow.php',{'args[]':c},function (data){
alert(data);
})
})
Run Code Online (Sandbox Code Playgroud)
a和c都在控制台中显示为空数组,但是(按图片所示)当我在控制台中查看args时,项目显示为空数组,但显示了项目

当数组被列为空但显示值时是什么意思。这里真正的问题是,如果我通过a,c或args.item进入我的回调函数格兰PHP页面没有收到任何数据。
更新
事实证明,我以错误的方式构造了数据,因此将其作为具有数据属性的空Array返回。似乎所有东西都无法很好地理解这一点-JSON,Jquery,console.log-我修复了数据结构,使每一行成为一个对象,一切都很好。
看起来Array确实是空的。您可以将命名属性赋予,Array就像可以赋予一样Object。意思就是:
console.log( item.CanPublish ); // "1"
console.log( item.length ); // 0
console.log( item[0] ); // undefined
Run Code Online (Sandbox Code Playgroud)
通常建议不要这样做,因为这会造成混乱。JavaScript没有“命名数组”之类的东西。尽量坚持使用任何一个Array 或一个Object。