2012-02-15 17 views
0

前の投稿と同じです。これは私がサーバーから取得している変更されたjsonです。ネストされたjsonからデータを読み取る

{"property":[{"@length":"10","@mandatory":"true","@type":"String","@label":"Description","@id":"desc"},{"@mandatory":"false","@type":"Number","@label":"Code","@id":"code"},{"@mandatory":"true","@type":"Boolean","@label":"Check","@id":"check"},{"@mandatory":"true","@type":"DateField","@label":"Date","@id":"date"},{"@mandatory":"true","@type":"List","@label":"Types","@id":"types","options":[{"@value":"eee"},{"@value":"fff"}]}]} 

オプションの配列をコンボボックスにレンダリングしたいと思います。これがモデルです。

Ext.define('Property', { 

     extend : 'Ext.data.Model', 

     fields : [ { 
      name : 'id', 
      mapping : '@id' 
     }, { 
      name : 'label', 
      mapping : '@label' 
     }, { 
      name : 'type', 
      mapping : '@type' 
     }, { 
      name : 'mandatory', 
      mapping : '@mandatory' 
     }, { 
      name : 'length', 
      mapping : '@length' 
     } ], 
     // {name : 'values', mapping : 'options[0][email protected]'}], didnt work 
     hasMany : { 
      model : 'Options', 
      name : 'options' 
     } 
    }); 

Ext.define('Options', { 
     extend : 'Ext.data.Model', 
//  reader : { 
      type : 'json', 
      root : 'options' 
      }, 

     fields : [ { 
      name : 'value1', 
      mapping : '@value' 
     } ], 
     associations : [ { 
      type : 'belongsTo', 
      model : 'Property' 
     } ] 
    }); 

何が問題なのかを見つけることができません。誰かが私にそれをする正しい方法を提案することができますか?

答えて

0

私はあなたがモデルの "関連"の概念を調べ、hasMany/belongs to relationshipsを使うべきだと思います。 IMHOでは、設定しようとしているデータを使用する必要があるときに、コードの後半で同じように、より簡単でクリーンなコードを作成できます。協会についての詳細は

sencha docs

HTHで、この偉大なリンクを参照してください!

+0

私は協会を試みましたが、彼らも働いていません。 – techie

0

どのようにコンボストアを設定していますか?データがすでにフェッチされている場合は、ストアに返された生データにアクセスして、コンボ用のデータを設定することができます。

関連する問題