Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.11.2018, 23:44
Аспирант
Отправить личное сообщение для Ambassador Посмотреть профиль Найти все сообщения от Ambassador
 
Регистрация: 12.11.2015
Сообщений: 46

Проблема при получение родительского контейнера компонента.
Всем привет.

При нажатии на запись дерева пытаюсь установить значения этой записи и установить эти значения в форме.

В контроллере по событию itemclick: this.showDataFields срабатывает функция:

....

showDataFields: function(view, record, item, index, event) {
        //got a form with fields
        var panel = view.up('maintab');
       console.log(panel)

        //var formfield   = panel.down('actionform');
        //assign values from selected record to form fields
        //formfield.loadRecord(record);

    },

..........


В этой функции view.up('maintab') устанавливается как underfined .

"maintab" является Ext.tab.Panel в котором находится дерево.

Почему не удается получить самый верхний контейнер что бы после этого спустится до панели и как это правильно сделать?
Пример в fiddle

Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 16.11.2018, 10:50
Профессор
Отправить личное сообщение для siber-biber Посмотреть профиль Найти все сообщения от siber-biber
 
Регистрация: 07.08.2013
Сообщений: 208

поменяйте на tabpanel вот в этом месте:
showDataFields: function(view, record, item, index, event) {
        //got a form with fields
        var panel = view.up('tabpanel');
...

xtype и alias бесполезны в app.js вот в этом куске кода:
Ext.create('Ext.tab.Panel', {
            xtype: 'maintab',
            alias: 'widget.maintab',

alias не используется так как он должен задаваться при создании класса, то есть при вызове Ext.define().

alias и xtype это по сути краткие имена классов, дабы при описании интерфейса в виде JSON вместо например "MyApp.view.MyCoolButton" можно было писать просто "coolbutton".

xtype у вас не используется потому что вы и так указали имя класса экземпляр которого создаётся: "'Ext.tab.Panel'

если вам нужен был способ идентифицировать/находить этот компонент использовали бы itemId или reference
Ответить с цитированием
  #3 (permalink)  
Старый 16.11.2018, 15:37
Аспирант
Отправить личное сообщение для Ambassador Посмотреть профиль Найти все сообщения от Ambassador
 
Регистрация: 12.11.2015
Сообщений: 46

Сообщение от siber-biber Посмотреть сообщение
поменяйте на tabpanel вот в этом месте:
showDataFields: function(view, record, item, index, event) {
        //got a form with fields
        var panel = view.up('tabpanel');
...

xtype и alias бесполезны в app.js вот в этом куске кода:
Ext.create('Ext.tab.Panel', {
            xtype: 'maintab',
            alias: 'widget.maintab',

alias не используется так как он должен задаваться при создании класса, то есть при вызове Ext.define().

alias и xtype это по сути краткие имена классов, дабы при описании интерфейса в виде JSON вместо например "MyApp.view.MyCoolButton" можно было писать просто "coolbutton".

xtype у вас не используется потому что вы и так указали имя класса экземпляр которого создаётся: "'Ext.tab.Panel'

если вам нужен был способ идентифицировать/находить этот компонент использовали бы itemId или reference
Теперь понятно почему была проблема.
Спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с отступом при адаптивной верстке all91 jQuery 0 31.07.2016 17:11
Меню закрывается при наведении мыши (Срабатывает MouseOut родительского контейнера) BirviZ Events/DOM/Window 2 09.06.2015 00:29
Проблема с .html() в родительского документа FreeFly19 jQuery 3 05.11.2014 19:36
Как закрыть дочерние окно из родительского при помощи переключателя checkbox?? dieseln Общие вопросы Javascript 4 15.12.2010 16:30
Изменение стиля родительского элемента при :hover дочернего lanzs Элементы интерфейса 2 16.10.2010 13:28