3

我目前有一个线性仪表,如下所示:

$("#depthBar-" + conveyanceId).kendoLinearGauge({
    pointer: {
        value: 0,
        shape: "arrow",
        color: "transparent",
        start: 0,
        reverse: true
    },
    scale: {
        majorUnit: 500,
        minorUnit: 100,
        min: -2000,
        max: 2000,
        vertical: false,
        reverse: false,
        ranges: [
            {
                from: -2000, // LimitLo
                to: -1500,
                color: "#ffc700"
            },
            {
                from: 2000, // LimitHi
                to: 1500,
                color: "#ffc700"
            }, {
                from: 2000, // LimitHiHi
                to: 1800,
                color: "#c20000"
            }, {
                from: -5000,
                to: -1800,
                color: "#c20000" // LimitLoLo
            }, {
                from: 0,
                to: 286,
                color: "lightblue"
            }
        ]
    }
});

是否可以让栏只显示最大和最小标签,而不是介于两者之间的标签?在这种情况下,我希望它只在刻度的一端显示“-2000”,在另一端显示“2000”。

4

3 回答 3

2

好吧,您可以将比例标签上的模板设置为函数,做一些数学运算,然后只返回您想要的标签。

labels: {
             // labels template
             template: getLabel
         }

function getLabel(e) {
  if(e.value === 2000) {
    return 2000;
  }
  else if(e.value === -2000) {
    return -2000;
  }
  else {
    return '';
  }
}

似乎有点古怪,并且可能有更好的方法,但这应该可以满足我的要求。(示例http://jsbin.com/aKAVOnE/1/edit

于 2013-09-12T14:14:24.447 回答
1

设置模板将正常工作。通常,当我需要完成此操作时,我会计算最大值和最小值之间的差异,并通过参数或在仪表创建计算中将其设置为主要单位。

于 2013-09-12T16:46:09.027 回答
0

设置majorUnit值,如max

演示

$("#gauge").kendoRadialGauge({
        pointer: {
            value: $("#gauge-value").val()
        },
        scale: {
            majorUnit:180,
            minorUnit: 5,
            startAngle: -30,
            endAngle: 210,
            max: 180
        }
    });
}
于 2016-05-26T13:27:53.640 回答