You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Kendo Donut环形图组件绑定数据?e.slice报错如何解决

问题根因

  1. 你接口返回的是单个JSON对象,但Kendo DataSource默认期望接收数组类型的数据源,调用数组专属方法slice失败触发了报错。
  2. 你的series配置结构错误,且接口返回的扁平对象结构和环形图要求的分类数据结构不匹配,环形图需要每个扇区对应一条带分类、数值属性的数组项。

解决步骤

1. 转换接口返回数据

通过DataSource的schema.parse回调,将接口返回的单个对象转换为环形图需要的分类数组,同时基于total字段计算各分类的占比。

2. 修正series配置

移除错误的嵌套结构,直接匹配转换后的数据字段即可。

修正后完整代码

function createChart() {
  $("#chart").kendoChart({
    dataSource: {
      transport: {
        read: {
          url: "/ert.mvc/Summary?id=23",
          dataType: "json",
          type: "GET"
        }
      },
      // 新增schema配置处理返回数据
      schema: {
        parse: function(response) {
          const totalVal = response.total;
          // 把扁平对象转为分类数组
          return [
            {
              source: "待处理",
              value: response.pending,
              percentage: ((response.pending / totalVal) * 100).toFixed(1)
            },
            {
              source: "未完成",
              value: response.incomplete,
              percentage: ((response.incomplete / totalVal) * 100).toFixed(1)
            },
            {
              source: "新申请",
              value: response.newlyRequested,
              percentage: ((response.newlyRequested / totalVal) * 100).toFixed(1)
            },
            // 如需展示剩余已完成部分可保留下面这行,不需要直接删除即可
            {
              source: "已完成",
              value: totalVal - response.pending - response.incomplete - response.newlyRequested,
              percentage: (((totalVal - response.pending - response.incomplete - response.newlyRequested) / totalVal) * 100).toFixed(1)
            }
          ];
        }
      }
    },
    title: {
      position: "bottom",
      text: "Share of Internet Population Growth"
    },
    legend: {
      visible: false
    },
    // 修正series配置,移除错误嵌套
    series: [{
      type: "donut",
      field: "value",
      categoryField: "source",
      explodeField: "explode"
    }],
    seriesColors: ["#42a7ff", "#666666", "#ff9900", "#36c960"],
    tooltip: {
      visible: true,
      // 调整模板直接显示计算好的占比
      template: "#= category #: #= percentage #%"
    }
  });
}

内容的提问来源于stack exchange,提问作者jhgbvc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:06:03