#extjs
#extjs
Вопрос:
Я несколько новичок в extjs и пытаюсь создать прослушиватель как часть панели, которая должна получать общее количество записей в хранилище, есть ли какой-нибудь простой способ сделать это?
Ответ №1:
load
Событие не подходит для этой цели, поскольку оно запускается только при загрузке хранилища. Если вам нужно отслеживать изменения, вам понадобится datachanged
событие, которое запускается всякий раз, когда в хранилище происходят какие-либо изменения. Т.Е. Вам нужно что-то вроде
Ext.getStore('simpsonsStore').on('datachanged', (store) => {
panel.down('#count').setHtml('Count: ' store.count());
})
Вы можете использовать count()
getCount()
или getTotalCount()
для получения товаров в хранилище. Первые два делают то же самое и возвращают количество элементов независимо от того, записаны ли они на прокси. Последний возвращает уже сохраненный счетчик. Т.е. getTotalCount
будет изменен только при обновлении хранилища sync()
.
Ответ №2:
Класс хранилища содержит события. Событие загрузки будет срабатывать, когда хранилище считывает данные из удаленного источника данных. Удаленный источник данных должен возвращать общее количество записей. Хранилище устанавливает «totalProperty», удаленное хранилище возвращает это свойство со значением. Затем вы можете получить свойство из хранилища с помощью getTotalCount() .
Комментарии:
1. Я забыл упомянуть, что данные хранятся локально, упражнение, над которым я работаю, потребовало от меня добавления прослушивателя и извлечения общего количества хранилища и его в заголовок панели.