Проблема здесь не в том, что данные загружаются, как и другие ответы. Вы сказали, что данные загружаются в магазин точно так же, как если у вас нет infinite
, установленного на true
, вы можете просмотреть данные.
Во-первых, давайте обсудим, что делает infinite
config.Как объяснил Ананд Гупта, конфигурация infinite
будет отображать только количество элементов списка, которые могут поместиться на экране (плюс некоторые в качестве буфера для прокрутки). Если у вас нет значения true
, тогда список отобразит все элементы и не будет управлять видимым диапазоном. Со всеми отображаемыми элементами список может поддерживать автоматическое определение размера. Однако, когда infinite
установлен в true
, список должен знать, какой размер он имеет, чтобы рассчитать количество видимых строк, которые он может отобразить.
Здесь возникает проблема, список не имеет полного размера, установленного для него. У вас есть список вложенных в контейнер и контейнер использует VBOX расположение:
config: {
title: 'Big List Issue',
fullscreen: true,
items: [{
xtype: 'container',
layout: 'vbox',
title: 'Big List',
items: [{
xtype: 'list',
store: 'contactStore',
id: 'simpleList',
flex: 1,
itemTpl: '<table><tr><td class="contact"><strong>{firstname}</strong> {lastname}</td></tr><tr><td>{companyname}</td></tr><tr><td>{address}, {city}, {province}, {postal}</td></tr><tr><td>{phone1}, {phone2}, {email}</td></tr><tr><td>{web}</td></tr></table>',
striped: true,
infinite: false
}]
}]
}
Это технически overnesting. Overnesting - это когда вы вложили компонент в контейнер, который не нужно вставлять в контейнер. Это безгнездная версия коды, который должен работать, как вы хотите:
config: {
title: 'Big List Issue',
fullscreen: true,
items: [{
xtype: 'list',
title: 'Big List',
store: 'contactStore',
id: 'simpleList',
itemTpl: '<table><tr><td class="contact"><strong>{firstname}</strong> {lastname}</td></tr><tr><td>{companyname}</td></tr><tr><td>{address}, {city}, {province}, {postal}</td></tr><tr><td>{phone1}, {phone2}, {email}</td></tr><tr><td>{web}</td></tr></table>',
striped: true,
infinite: true,
variableHeights: true
}]
}
То, что я здесь, это удалить контейнер и имел список в качестве прямого потомка вашего зрения MyApp.view.MyIssue
навигации. Навигационное представление использует макет карты, который даст каждому прямому ребенку 100% высоту и ширину и, следовательно, позволяет рассчитать количество строк, которые он может отобразить, с infinite
, установленным на true
. Вот скриншот Sencha, чтобы показать этот незатушенный список в действии: https://fiddle.sencha.com/#fiddle/11v1
Другой способ, если вы действительно хотите, чтобы список был вложен в этот контейнер (чем больше гнезд вы, тем больше DOM с тех пор, как у вас создано больше компонентов и тем больше DOM, тем медленнее ваше приложение может реагировать), то вы можете дать компоновкам VBOX контейнера в align
конфигурации:
config: {
title: 'Big List Issue',
fullscreen: true,
items: [{
xtype: 'container',
layout: {
type: 'vbox',
align: 'stretch'
},
title: 'Big List',
items: [{
xtype: 'list',
store: 'contactStore',
id: 'simpleList',
flex: 1,
itemTpl: '<table><tr><td class="contact"><strong>{firstname}</strong> {lastname}</td></tr><tr><td>{companyname}</td></tr><tr><td>{address}, {city}, {province}, {postal}</td></tr><tr><td>{phone1}, {phone2}, {email}</td></tr><tr><td>{web}</td></tr></table>',
striped: true,
infinite: true
}]
}]
}
в безгнездном примере списка, я также использую variableHeights
конфигурации в списке. Это позволяет правильно отображать элементы списка. Запустите скрипку, чтобы прочесть ее, чтобы увидеть разницу, которую она делает.
Очень интересно и спасибо за детали. Я попытался реализовать свои изменения в своей скрипке, и это не удалось. Затем я заметил, что ваша скрипка работает только в Sencha Touch 2.4.2. Если не удалось для всех более ранних версий, включая 2.4.1. – AnthonyVO
Я не знал, что скрипка sencha позволяет использовать отдельные файлы. – AnthonyVO
Я думаю, что есть ошибка в 2.4.1, поскольку этот простой dataview не работает в 2.4.1, но в 2.4.2: https://fiddle.sencha.com/#fiddle/11v7 Я бы рекомендовал до 2.4.2. О скрипке отдельных файлов, щелкните значок гамбургера в левом нижнем углу, а затем вы можете использовать значки + для добавления файлов/папок. –