0

我有一个线性仪表,它根据作为参数传递的对象中的值生成一些标签,如下所示: 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-call 设置为getLabel(e, maxDepthRange)

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

有什么建议么?

4

1 回答 1

1

将代码更改为此应该可以:

labels: {
        template: function(e) { return getLabel(e, 12000); } // maxDepthVal as 2nd param
    },
于 2013-09-16T10:54:38.253 回答