偶尔在firebug中,我无法在单步执行javascript代码时深入查看变量表达式。有时它是flu flu行为,我会刷新页面,下次我能够向下钻取。然而,有些变量,我永远无法做到。我举个例子:
我正在使用谷歌可视化API,我有以下代码:
var row = tableChart1.getSelection();
var test5 = queryWrapper1;
var dt = test5.currentDataTable;
var dv = test5.currentDataView;
var x = dv.getViewRowIndex(row[0].row);
var y = dt.getRowProperties(row[0].row);
alert(test5.currentDataTable.getRowProperty(row[0].row,"ticker"));
我无法深入研究的变量是y。这是getRowProperties()的文档(这里是链接link to documentation):
返回:对象
返回指定行的所有属性的映射。请注意 属性对象是通过引用返回的,因此更改了值 检索到的对象在DataTable中更改它们。
关于为什么firebug不会让我检查返回对象的属性的任何解释将非常感激。感谢。
更新:我正在使用firebug 1.7.3。
此处还有我所看到的屏幕截图:
答案 0 :(得分:1)
我尝试使用Google的一些示例代码对其进行测试。这不是Firebug的问题。从您对object
的通话中返回的dt.getRowProperties(row[0].row);
确实是空的。 getRowProperty上的文档提到如果不存在此类属性,则会返回null
。如果没有属性,似乎为相关函数getRowProperties
返回一个空对象。
某些可视化使用行,列或单元格的属性来更改其行为,如explained in the documentation。您必须使用相关函数显式设置这些属性。
如果你想测试它,为了证明它不是Firebug,改变代码如下:
var row = tableChart1.getSelection();
var test5 = queryWrapper1;
var dt = test5.currentDataTable;
var dv = test5.currentDataView;
var x = dv.getViewRowIndex(row[0].row);
// Add this bit
dt.setRowProperty(row[0].row, 'foo', 'bar');
var y = dt.getRowProperties(row[0].row);
alert(test5.currentDataTable.getRowProperty(row[0].row,"ticker"));