我有一个 ProfileView 应该显示一些用户数据。这是我第一次尝试从 MySql 获取数据并将其显示在 Sencha 视图上。
风景
Ext.define('MyApp.view.Profile', {
extend : 'Ext.Panel',
xtype : 'profileview',
requires : ['Ext.List', 'Ext.data.Store'],
config : {
layout: 'fit',
title : 'Profiel',
iconCls : 'user3',
cls : 'home',
scrollable : true,
styleHtmlContent : true,
html : ['<h1>Mijn Profiel</h1>'].join(""),
items : [Ext.create('Ext.List', {
title : 'Profile',
docked : 'top',
store : myStore,
show : function(list, opts) {
alert('list === ' + list);
console.log('List Shown: ' + list);
}
})]
}
});
var myStore = Ext.create("Ext.data.Store", {
model : "MyApp.model.User",
proxy : {
type : "ajax",
url : "php/get_user.php",
reader : {
type : "json"
// rootProperty : "users"
}
},
autoLoad : true
});
数据正确返回,但没有显示任何内容,这是我试图弄清楚的。
响应
[{"ID":"19","USERNAME":"Annet","EMAIL":"annet@annet.nl"}]
我跳过了 rootProperty,因为它是单个用户。
该模型
Ext.define('MyApp.model.User', {
extend : 'Ext.data.Model',
config : {
fields : [{
name : 'ID',
type : 'int'
}, {
name : 'USERNAME',
type : 'string'
}, {
name : 'EMAIL',
type : 'string'
}]
}
});
那么,为什么列表没有显示任何内容?
更新
我检查以查看商店是否包含数据,并且确实如此
map: Object
ext-record-1: Class
_data: Object
EMAIL: "annet@annet.nl"
ID: 19
USERNAME: "Annet"
id: "ext-record-1"
__proto__: Object
为什么它没有被列表选中?我也尝试过 DataView。