У меня есть обычный список с ' onItemDisclosure ', теперь при нажатии на элемент панель открывается нормально, но я бы хотел, чтобы эта панель помещалась во внешний файл страницы / js, а незасорение рабочей страницы кода и т. д.
У меня есть все в одном и том же файле:
var newPanel = new Ext.Panel({
id : 'pagedetails',
tpl:'Show details panel'
});
.......
onItemDisclosure: function(record, btn, index) {
newPanel.update();
App.viewport.setActiveItem('pagedetails', {type: 'slide', direction: 'left'});
}
это работает нормально, но затем я создаю его как отдельную страницу, как показано ниже.js:
App.views.pagedetails = Ext.extend(Ext.Panel, {
id: 'pagedetails',
tpl:'Show details page'
});
Ext.reg('pagedetails', App.views.pagedetails);
Я загрузил это на главной странице индекса без проблем, когда я его кодирую, чтобы попытаться заставить его работать.
в моем окне просмотра initComponent: function() {... у меня есть следующее
App.views.pagedetails = new App.views.pagedetails();
Ext.apply(this, {
items: [
App.views.pagedetails
.......etc
, затем в моем ' onItemDisclosure ' у меня есть следующее:
App.views.pagedetails.update();
App.viewport.setActiveItem('pagedetails', {type: 'slide', direction: 'left'});
затемв разделе items этой страницы
....
items:[list, App.views.pagedetails];
Но это приводит к следующей ошибке:
Uncaught Попытка добавить нулевой элемент в качестве дочернего элемента контейнера с itemId / id:ext-comp-1017
Что я делаю не так или это возможно?/ мне нужно, чтобы моя подробная панель была в том же файле?
РЕДАКЦИОННЫЙ РАЗДЕЛ
В любом случае, пока я не решу эту проблему, я решил вернуться к основам и сейчасЯ не могу заставить это работать.Мой код ниже, и когда я нажимаю на подробный значок, я получаю ошибку ниже:
var detailsPanel = new Ext.Panel({
id : 'pagedetails',
tpl:'Show details panel'
});
var list = new Ext.List({
itemTpl : App.views.showlistTpl,
grouped : true,
indexBar: true,
store: 'showsStore',
onItemDisclosure: function(record, btn, index) {
detailsPanel.update();
App.viewport.setActiveItem('pagedetails', {type: 'slide', direction: 'left'});
}
});
App.views.displayList = Ext.extend(Ext.Panel, {
scroll: 'vertical',
styleHtmlContent: false,
layout: 'card',
dockedItems: [{
xtype: 'toolbar',
title: 'Shows & Events'
}],
items: [list, detailsPanel]
});
Ext.reg('displayList', App.views.displayList );
Теперь я получаю ошибку:
Chrome: Uncaught TypeError: Cannotчитать свойство 'isComponent' из неопределенного
Safari: TypeError: 'undefined' не является объектом (оценивается как 'config.isComponent')
Любые идеи дляполучить базовую работу снова
ОБНОВЛЕНИЕ
У меня установлен следующий код:
var detailPanel = new Ext.Panel({
id: 'detailpanel',
tpl: 'Hello',
layout: 'card'
});
var listPanel = new Ext.List({
id: 'indexlist',
store: 'showStore',
itemTpl: App.views.showlistTpl,
grouped: true,
layout:'card',
onItemDisclosure: function(record, btn, index) {
detailPanel.update(record.data);
App.viewport.setActiveItem('detailPanel', {type: 'slide', direction: 'left'});
}
});
App.views.showList = Ext.extend(Ext.Panel, {
scroll: 'vertical',
styleHtmlContent: false,
dockedItems: [{
xtype: 'toolbar',
title: 'My List'
}],
items: [listPanel, detailPanel],
layout:'card'
});
Ext.reg('showList', App.views.showList);
Список показывает все в порядке, но затем, когда я нажимаю на значок раскрытия, Я получаю следующую ошибку:
Uncaught TypeError: Невозможно прочитать свойство 'isComponent' неопределенного
Прошел через все, но все еще не может видеть, что не так?
, что странно (когдапопробуйте несколько вещей), когда я меняю макет «App.views.showList» на макет: «подходит», затем нажимаю на значок раскрытия, моя подробная страница отображается поверх моего списка, поэтому я получаю список и подробный вид страницытак что, похоже, это не удаляет мой список vтоесть ....?
спасибо