我正在尝试在浮动面板中加载列表。它适用于静态值,但不使用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: {
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 :(得分:0)
这与本地数据与JSON文件无关。您只是没有在列表视图上正确设置预定义存储。您希望向商店定义添加别名,并将商店定义为商店别名 type 的对象(减去前缀)。这是一个小提琴:
https://fiddle.sencha.com/#fiddle/2bh
(具体看第3行和第45行)
我建议总是通过这样的别名创建商店,它更容易管理和销毁,并且每个创建的商店将始终是一个新实例。提前创建商店(例如,通过Ext.create)然后将它们分配给组件会带来很大的风险,即无意中将同一商店绑定到2个以上的数据视图。