2013-02-26 3 views
0

У меня есть ProfileView, который должен показывать некоторые пользовательские данные. Это первый раз, когда я пытаюсь получить данные с MySql и показывать их на представлении Сенча.Sencha List показывает нет данных

Вид

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":"[email protected]"}] 

я пропустил rootProperty, потому что это один пользователь.

Модель

Ext.define('MyApp.model.User', { 
extend : 'Ext.data.Model', 
config : { 
    fields : [{ 
     name : 'ID', 
     type : 'int' 
    }, { 
     name : 'USERNAME', 
     type : 'string' 
    }, { 
     name : 'EMAIL', 
     type : 'string' 
    }] 
} 

});

Итак, почему в списке ничего не отображается?

Update

я проверить это хранилище содержит данные, и это делает

map: Object 
ext-record-1: Class 
_data: Object 
EMAIL: "[email protected]" 
ID: 19 
USERNAME: "Annet" 
id: "ext-record-1" 
__proto__: Object 

Почему не подобран в списке? Я также пробовал DataView.

+0

попытаться открыть журнал в консоли. так что мы можем узнать, являются ли это данными, которые не поступают в магазин, или это список, который не отображает данные. также, чтобы сначала проверить исходные данные о помете в хранилище, и если он отображает данные, тогда мы можем посмотреть, не дают ли нам данные из php – 1Mayur

+0

@SirwaniMayur. В хранилище содержатся данные, см. мое обновление. –

+0

, но следующая строка не выполняется: console.log ('List Shown:' + list); –

ответ

0

Вам необходимо использовать itemTpl, я изменил код для вас.

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', 
     itemTpl : '<div>{ID} <span> {USERNAME} </span> <span> {EMAIL} </span> </div>', 
     store : myStore, 
     show : function(list, opts) { 
      alert('list === ' + list); 
      console.log('List Shown: ' + list); 
     } 
    })] 
} 
}); 
Смежные вопросы