是否可以仅在Kendo UI线性仪表上显示最大/最小值?

时间:2013-09-12 07:09:30

标签: javascript css kendo-ui

我目前的线性测量仪看起来像这样:

$("#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”。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

设置模板可以正常工作。通常当我需要这样做时,我会计算最大值和最小值之间的差值,并通过参数或仪表创建计算将其设置为主要单位。

答案 2 :(得分:0)

majorUnit设置为max

Demo

$("#gauge").kendoRadialGauge({
        pointer: {
            value: $("#gauge-value").val()
        },
        scale: {
            majorUnit:180,
            minorUnit: 5,
            startAngle: -30,
            endAngle: 210,
            max: 180
        }
    });
}