Я схожу с ума, пытаясь понять, почему это происходит.Проблема, с которой я сталкиваюсь, заключается в том, что когда я загружаю свое приложение, в котором есть панель со списком, чье хранилище представляет собой модель, загруженную через RestProxy, список оказывается пустым.Пока вы не коснетесь одного из рядов, он станет видимым.Вы должны дотронуться до каждой строки, чтобы они отображались (переключение на другую вкладку также работает).Я сузил это до того, что, очевидно, что-то связано с тем, как быстро сервер передает данные JSON.Когда сервер отвечает быстро, эта проблема не возникает (я предполагаю, что «рисование» списка происходит после загрузки данных).
Если я добавлю задержку на сервер (3 секунды) перед отправкой JSON, проблема возникнет.Я также заметил, что если я удаляю макет: {type: 'card'}, он также отображается правильно.Я не могу сделать это в моем реальном приложении, потому что это на самом деле является частью TabControl
Может кто-нибудь указать мне, что я делаю неправильно?Кстати, это происходит только при просмотре на iPhone.При открытии в Chrome все нормально.
var proxy = new Ext.data.RestProxy({
format: 'json',
url: '/tabs/1/members',
reader: {
type: 'json',
root: 'data'
}
});
Ext.regModel( 'User', {
fields: [ 'name' ],
proxy: proxy
} );
var store = Ext.regStore( 'myStore', {
model: 'User',
autoLoad: true
} );
MyList = Ext.extend( Ext.Panel, {
fullscreen: true,
layout: {type: 'card' }, // Commenting this line also 'fixes' the problem
initComponent: function() {
this.list = new Ext.List({
itemTpl: '<div>{name}</div>',
store: 'myStore',
scroll: false,
autoHeight: true
});
this.items = this.list;
MyList.superclass.initComponent.call( this );
}
} );
Ext.reg( 'mylist', MyList );
Ext.setup({
onReady: function() {
new MyList();
}
});