#javascript #model-view-controller #sencha-touch #extjs
#javascript #модель-представление-контроллер #sencha-touch #extjs
Вопрос:
Итак, я пытаюсь написать небольшое приложение MVC, которое часто использует списки. У меня есть одно представление, которое состоит из панели с панелью инструментов, прикрепленной к началу и списку:
app.views.SalonListView = Ext.extend(Ext.Panel, {
layout: 'card',
cardSwitchAnimation: 'slide',
dockedItems: [
{
xtype: 'toolbar',
dock: 'top'
}
],
items: [
{
xtype: 'SalonList',
id: 'salon-list'
}
]
});
Ext.reg('ListView', app.views.SalonListView);
У меня есть xtype для списка, определенного в другом файле:
app.views.SalonList = Ext.extend(Ext.List, {
layout: 'card',
itemTpl: // some tpl is here
});
Ext.reg('SalonList', app.views.SalonList);
Как вы можете заметить, я не устанавливаю хранилище для своего списка.
Чего я пытаюсь добиться, так это установить хранилище в любом контроллере, который я использую с этим представлением.
Что-то вроде:
salonList: function() {
app.stores.SalonStore.read();
this.salonsView = this.render({
xtype: 'SalonListView',
// so I need to set store for the list somewhere around here
});
}
Есть ли какая-либо возможность, я могу установить хранилище для списка динамически?
Комментарии:
1. Вы пробовали
bindStore
method?docs.sencha.com/touch/1-1 /#!/api/Ext.DataView-метод-bindStore2. Что ж, я думаю, это должно сработать, но теперь вопрос в том, как я могу получить доступ к своему списку из области действия контроллера?
3. По идентификатору, т.е.
Ext.getCmp('salon-list')
4. Он не может найти список по идентификатору до его отображения, и он не может быть отображен без привязки к нему хранилища…
5. затем вам нужно избегать использования отложенного рендеринга, создать экземпляр с помощью new Ext.List({})