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 に答える