我花了很多时间试图找到一个可以解释我的问题的标题,但这并不容易。请随意提出建议。
代码如下:我正在使用谷歌可视化为我的图表创建注释。注释列使用自定义函数。这是google允许的,该函数将接收2个参数:dt和row。问题是:下面的 (dt, row, i) 应该是什么,以便我获得函数通常接收的默认 dt、行和我的附加参数 i?
view = new google.visualization.DataView(chartData);
var arr = [0];
for (var i = 1; i < chartData.getNumberOfColumns() ; i++)
{
arr.push(i);
arr.push({role: "annotation", type: "string", calc: (function (dt, row,i) {
if (typeof (dt.getValue(row,i)) == "number" && dt.getValue(row,i) == 0)
{
return "";
}
else
{
return dt.getValue(row, i).toString;
}
})(dt, row, i)
});
}
view.setColumns(arr);
chartData = view.toDataTable();
最佳答案
我不知道我是否正确,但你可能可以使用更高阶的函数:
var createCalc = function(i){
return function(dt, row){
if (typeof (dt.getValue(row,i)) == "number" && evs == 0) { return ""; }
else { return dt.getValue(row, i).toString; }
};
}
...
arr.push({role: "annotation", type: "string", calc: createCalc(i)});
关于javascript - 将附加参数注入(inject) JavaScript 回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21480338/