2013-12-16 86 views
0

我試圖在浮動面板內加載列表。它適用於靜態值,但不會使用json文件加載。Sencha Touch 2商店不在浮動面板內加載

如果我想這和它的作品:

var panel = Ext.create('Ext.Panel', { 
left: 0, 
padding: 10, 
width: 300, 
height: 300, 
modal: true, 
hideOnMaskTap: true, 
layout: 'fit', 
items: [ 
    { 
     xtype: 'list', 
     scrollable: true, 
     ui: 'round', 
     height: '100%', 
     store: { 
      fields: ['name'], 
      data: [ 
       {name: 'Cowper'}, 
       {name: 'Everett'}, 
       {name: 'University'}, 
       {name: 'Forest'} 
      ] 
     }, 
     itemTpl: '{name}' 
    } 
] 
}); 

但是,當我嘗試調用一個JSON文件,這是行不通的。這是面板:

var panel = Ext.create('Ext.Panel', { 
left: 0, 
padding: 10, 
width: 300, 
height: 300, 
modal: true, 
hideOnMaskTap: true, 
layout: 'fit', 
items: [ 
    { 
     xtype: 'list', 
     scrollable: true, 
     ui: 'round', 
     height: '100%', 
     store: 'storeCardStatus', 
     itemTpl: '{Card_Status}' 
    } 
] 
}); 

這是商店:

Ext.define('MyApp.store.storeCardStatus',{ 
extend: 'Ext.data.Store', 
config: { 
    model: 'MyApp.model.modelCardStatus', 
    autoLoad: true, 

    proxy: { 
     type: 'ajax', 
     url : 'card_status.json', 
     reader: 'json' 
    } 
} 
}); 

這是模型:

Ext.define('MyApp.model.modelCardStatus', { 
extend: 'Ext.data.Model', 
config: { 
    fields: [ 
     {name: 'Card_Status', type: 'string'} 
    ] 
} 
}); 

這是JSON文件:

[ 
{"Card_Status": "Completed"}, 
{"Card_Status": "Issued"}, 
{"Card_Status": "In Use"} 
] 
+0

你的pannel似乎在它充滿數據之前被渲染? –

+0

鉻控制檯中的任何錯誤? –

回答

0

這與本地數據vs JSON文件無關。您只是沒有在列表視圖上正確設置預定義的商店。您想要爲商店定義添加別名,並將商店定義爲類型的商店別名(減去前綴)的。這裏是一個小提琴:

https://fiddle.sencha.com/#fiddle/2bh
(在3號線專門研究,和#45)

我想通過這樣的別名建議總是創造店,很容易使得管理和銷燬,每個創建的商店將永遠是一個新的實例。提前創建商店(例如,通過Ext.create)然後將其分配給組件會帶來無意中將同一商店綁定到2+數據視圖的巨大風險。