是否可以使用方法传递对象和其他参数?

时间:2013-09-16 10:51:37

标签: javascript

我有一个线性仪表,根据作为参数传递的对象中的值产生一些标签,如下所示: function createGauges(conveyanceId,maxDepthRange){

$("#depthBar-" + conveyanceId).kendoLinearGauge({
    pointer: {
        value: 0,
        shape: "arrow",
        color: "transparent",
        start: 0,
        reverse: true
    },
    scale: {
        majorUnit: 800,
        minorUnit: 400,
        min: 0,
        max: maxDepthRange,
        labels: {
            template: getLabel
        },
        vertical: false,
        reverse: false,
        ranges: [{
            from: 0,
            to: 0,
            color: "dodgerblue"
        }
        ]
    }
});

目前,getLabel方法看起来像这样:

function getLabel(e) {
    if (e.value === 12000) {
        return e.value;
    }
    else if (e.value === 0) {
        return e.value;
    }
    else {
        return '';
    }
}

就目前而言,这可以正常工作,因为max: maxDepthRange实际上是12000(从数据库中获取)。但是,每当maxDepthRange的值从12000变化时,我都希望getLabel方法能够处理这个问题,但我似乎无法弄清楚如何传递一个额外的参数。 这是我尝试过的,将getLabel调用设置为getLabel(e, maxDepthRange)

function getLabel(e, maxDepthVal) {
    if (e.value === maxDepthVal) {
        return e.value;
    }
    else if (e.value === 0) {
        return e.value;
    }
    else {
        return '';
    }
}

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

将代码更改为:

labels: {
        template: function(e) { return getLabel(e, 12000); } // maxDepthVal as 2nd param
    },