2013-12-16 91 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+数据视图的巨大风险。