2012-02-15 120 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關係。恕我直言,它會使代碼變得更簡單,更簡潔,同樣,當你需要使用你試圖設置的數據時,代碼稍後會更加有用。

有關協會,請參閱本偉大的鏈接的詳細信息在sencha docs

HTH!

+0

我試過這些關聯,但他們也無法工作。 – techie 2012-02-16 06:55:19

0

你如何配置你的組合商店?如果您的數據已被提取,您可以通過訪問返回給商店的原始數據來設置組合數據。