Здесь я регистрирую свое приложение:
App = new Ext.Application({
name: "App",
launch: function() {
this.views.viewport = new this.views.Viewport();
}
});
Так я регистрирую новые панели и компоненты.Я поместил каждый из них в отдельные js-файлы.
App.views.Viewport = Ext.extend(Ext.TabPanel, {
fullscreen: true,
tabBar: {
dock: 'bottom',
layout: {
pack: 'center'
}
},
items: [
{
xtype: 'cPanel'
},
{
xtype: 'anotherPanel'
}
]
});
// register this new extended type
Ext.reg('App.views.viewport', App.views.Viewport);
Я добавил другие компоненты таким же образом.
В одном из моих компонентов, который является представлением списка, я хочу изменитьActiveItem панели контейнера с другой панелью, когда она переворачивается на элемент, например так: (Viewport содержит эту панель контейнера)
App.views.ListApp = Ext.extend(Ext.List, {
store: App.store,
itemTpl: "...",
onItemDisclosure: function(record) {
App.detailPanel.update(record.data);
App.cPanel.setActiveItem("detailPanel");
},
listeners: {
itemtap: function(view, index, item, e) {
var rec = view.getStore().getAt(index);
App.views.detailPanel.update(rec.data);
App.views.cPanel.setActiveItem("detailPanel", {type:"slide", direction: "left"});
}
}
});
App.views.detailPanel.update(rec.data);
Но он говорит: не может вызвать метод "update" из неопределенного
Я пробовал разные варианты в этой строке, например: App.detailPanel.update (rec.data);и я попытался указать идентификаторы detailPanel и cPanel , где они были добавлены на панель контейнера, и попытался связаться с ними с помощью Ext.get (), но ни один из них не сработал.1020 *
В чем здесь проблема?
И любые другие советы будут оценены.Спасибо.