javascript - 将附加参数注入(inject) JavaScript 回调函数

标签 javascript syntax google-visualization

我花了很多时间试图找到一个可以解释我的问题的标题,但这并不容易。请随意提出建议。

代码如下:我正在使用谷歌可视化为我的图表创建注释。注释列使用自定义函数。这是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/

相关文章:

javascript - CSS/JQuery 链接悬停不会触发

javascript - Webpack:需要 ('index.html' )与仅复制 index.html

模板类中模板函数的 C++ 特化

javascript - 谷歌可视化设置栏停靠

javascript - 谷歌图表 : hi is not a function

javascript - 根据 URL 创建变量

javascript - ng-style 不适用于嵌套对象?

java - 有什么方法可以将 for 循环放在 if 条件语句中作为快捷方式吗?

c# - C# 中的 Word 自动化语法

javascript - 基本网址和谷歌地理图表