将字符串变量传递给方法时出错
Error passing string variable to method
我试图将一个变量传递给谷歌可视化方法,但如果我使用一个变量,它会不断弹出一个错误,但如果键入字符串,它会很好。我在这里错过了什么?
这项工作:
var filterdata = new google.visualization.DataView(data)
filterdata.setRows(
filterdata.getFilteredRows([{column: 0, value: 'someval'}])
);
这不起作用:
filteredrows = "[{column: 0, value: 'someval'}]";
var filterdata = new google.visualization.DataView(data)
filterdata.setRows(
filterdata.getFilteredRows(filteredrows)
);
我得到的错误是:
"未捕获错误:columnFilters必须是非空数组"
编辑:
我正在尝试构建一个数组/字符串,以将所有仪表板控件状态作为getfilteredrows()的筛选条件进行传递。下面是我用来构建数组的代码。我也尝试过创建一个字符串,但不管怎样都不被接受。。。
control_states = [ctrl1.getState(),ctrl2.getState(),ctrl3.getState()];
var filteredrows = {};
var cnt = 0;
for (var i = 0; i < control_states.length; i++) {
var picker_state = control_states[i]
for (var j = 0; j < picker_state.selectedValues.length; j++) {
filteredrows[cnt] = "column: " + i + ", value: '" + picker_state.selectedValues[j] + "'";
cnt += 1;
};
};
一个是JSON,另一个是实际数组。
只需将第一行写为此
var filteredrows = [{column: 0, value: 'someval'}];
如果你的filteredrows
实际上是一个字符串,而你不能改变它,那么首先在上使用JSON.parse
var filterdata = new google.visualization.DataView(data)
filterdata.setRows(
filterdata.getFilteredRows(JSON.parse(filteredrows))
);
我猜getFilteredRows方法接受的是有效数组,而不是字符串。我建议在发送字符串之前使用JSON.parse。例如:
filterdata.getFilteredRows(JSON.parse(filteredrows));
以下是我解决问题的方法,感谢naomik和Krasimir为我指明了正确的方向!
control_states = [ctrl1.getState(),ctrl2.getState(),ctrl3.getState()];
var filteredrows = [ ];
var cnt = 0;
for (var i = 0; i < control_states.length; i++) {
var picker_state = control_states[i]
for (var j = 0; j < picker_state.selectedValues.length; j++) {
filteredrows[cnt] = [ ];
filteredrows[cnt]["column"] = i;
filteredrows[cnt]["value"] = picker_state.selectedValues[j];
cnt += 1;
};
};
var filterdata = new google.visualization.DataView(data)
filterdata.setRows(
filterdata.getFilteredRows(filteredrows)
);
相关文章:
- 为什么我得到“;没有方法'indexOf'"在ExtJS4.2中尝试在网格上使用缓冲渲染器时出错
- 出错时更改文本字段边框的最简单方法
- 在ember.js中保存对象时出错:'对象X没有方法'保存''
- 在NPObject上调用方法时出错:(一个理想的)PhoneGap项目
- "无法调用方法'打开'未定义的“;使用indexedDB.open时出错
- css 可见性属性和 javascript setTimeout 方法出错
- 如何检查我们是否在使用 angularJs $http方法时出错
- 如何在 JavaScript 中测试方法而不会出错
- 提示用户在Google Apps Script上输入,“getUi()”方法出错
- 尝试使用 angularjs 拦截器时出错 未捕获 获取 无法调用未定义的方法“推送”
- 从 JavaScript 函数调用 C# 方法背后的代码时出错
- 几个实习方法出错
- 在NPObject - Firefox插件上调用方法出错
- Javascript中的对象和方法出错
- 无法加载http://url状态:0"onbeforeunload方法出错
- 在nproject上调用方法出错!在JavaScript
- 在npoject上调用方法出错
- 在nproject上调用方法出错
- 在带有参数的winforms web浏览器控件中从JS调用c#方法出错
- 在nproject上调用方法出错!用于伸缩深度链接