0

我正在尝试将渲染器用于网格内的列。这是json数据

{
    "success": true,    
    "products": [{
        "myfield": [30, 50]
    }]
}

这是列渲染器的代码

  {
      text: "Myfield",
      dataIndex: 'myfield',
      renderer: function (val) {
          if (typeof (val) == 'object') {
              // Here am getting for 3 times 
              console.log(val);
              return val;
          } else {
              return val;
          }
      }
  }

在控制台中为什么要打印 3 次?

 [30, 50]
 [30, 50]
 [30, 50]

我正在尝试为数组中的每个值创建跨度元素,因此使用渲染器。

谢谢你的帮助!!

4

2 回答 2

0

ExtJs 解释您的 json 的方式是未定义的,或者换句话说 - 就 ExtJs 而言,您的 josn 是无效的。

"products": [{
    // ExtJs has no way to understand this.
    "myfield": [30, 50]
}]

您正在使用:

dataIndex: 'myfield'

这意味着该列显示模型记录中的一个字段。模型记录的字段必须是原始类型 - 它不能是数组或对象。如果您考虑一下 - 将数组或对象作为字段值是没有意义的。

您应该查看您尝试表示的数据的关联。

于 2013-04-05T12:58:19.797 回答
-1
renderer:function(value, metaData, record){
         return record.raw.myfield // here you can get array and create string for rendering
}
于 2013-06-11T15:33:38.797 回答