Добавление custom класса как item класса tab. Unrecognized alias: widget.
Добрый день!
Имеется необходимость добавить как объекты класса Tab несколько классов grid и panel. При добавлении одного из классов grid, приложение функционирует нормально. При добавлении второго класса при вызове tab класса дебагер выдает следующую ошибку: Uncaught Error: [Ext.createByAlias] Unrecognized alias: widget. Код класса содержащего tab: Ext.define('Foresto.view.forms.LoginWorkSpace', { extend: 'Ext.panel.Panel', requirs: ['Foresto.model.EditListRenters', 'Foresto.model.EditLCA'], height: '60%', id:'loginWS', fullscreen: true, closable: false, header: { cls: 'header-cls' }, scrollable: true, xtype: 'loginWS', title: 'ЛИЧНЫЙ КАБИНЕТ', modal: true, hideOnMaskTap: true, showAnimation: { type: 'popIn', duration: 250, easing: 'ease-out' }, hideAnimation: { type: 'popOut', duration: 250, easing: 'ease-out' }, centered: true, width: '100%', items:[{ xtype:'tabpanel', fullscreen: true, cls: 'header-cls', width: '100%', height: '80%', renderTo:'loginWS', shadow: true, tabBar: { layout: { pack: 'center' } }, activeTab: 1, defaults: { scrollable: true, userSelectable: { bodyElement: true } }, items: [ { xtype: 'panel', layout:'vbox', title: 'ИНФОРМАЦИЯ О ПОЛЬЗОВАТЕЛЕ', cls: 'header-cls', items:[ {xtype: 'selectfield', label: 'Имя', margin: 4, },{ xtype: 'selectfield', label: 'Статус', margin: 4, },{ xtype: 'selectfield', label: 'Регион', margin: 4, },{ xtype: 'button', ui:'confirm', text:'Добавить арендатора' },{ xtype: 'button', text:'Редактировать профиль' } ] }, { xtype: 'panel', title: 'ДОГОВОР', items:[ {xtype:'contlistII'} ] }, { xtype: 'panel', title: 'СПИСОК', cls: 'header-cls' },{ xtype: 'panel', layout:'fit', title: 'АРЕНДАТОРЫ', cls:'header-cls', items:[{ xtype:'rentlist' }] } ] }], scrollable: true, scope: this }); косячный грид (даже если убираю другой грид, ошибка никуда не девается): Ext.define('Foresto.model.EditLCA', { extend:'Ext.grid.Grid', xtype: 'contlistII', requires: [ 'Ext.grid.plugin.Editable', 'Ext.grid.plugin.ViewOptions', 'Ext.grid.plugin.PagingToolbar', 'Ext.grid.plugin.SummaryRow', 'Ext.grid.plugin.ColumnResizing', 'Ext.grid.plugin.MultiSelection', 'Ext.grid.plugin.RowExpander', 'Foresto.model.CAListModel' ], shadow: true, grouped: true, rowLines: true, store: { model:'Foresto.model.CAListModel', autoLoad: true, pageSize:0, proxy: { type:'ajax', url:'api/contract/', reader:{ type:'json', rootProperty: 'results' } } }, plugins: [ { type: 'grideditable' }, { type: 'gridviewoptions' }, { type: 'pagingtoolbar' }, { type: 'summaryrow' }, { type: 'columnresizing' }, { type: 'rowexpander' } ], columns: [ { text: 'id', flex: 1, minWidth: 100, dataIndex: 'id' },{ text:'renter', dataIndex:'renter', minWidth: 100 },{ text:'date', dataIndex:'date', format: 'd-m-Y', minWidth: 100 },{ text:'organ', dataIndex:'organ', minWidth: 100 },{ text:'num', dataIndex:'num', minWidth: 100 },{ text:'date_reg', dataIndex:'date_reg', format: 'd-m-Y', minWidth: 100 },{ text:'kadastre', dataIndex:'kadastre', minWidth: 100 },{ text:'glr', dataIndex:'glr', minWidth: 100 },{ text:'reason', dataIndex:'reason', minWidth: 100 },{ text:'use_start', dataIndex:'use_start', format: 'd-m-Y', minWidth: 100 },{ text:'use_end', dataIndex:'use_end', format: 'd-m-Y', minWidth: 100 },{ text:'act_num', dataIndex:'act_num', minWidth: 100 },{ text:'act_date', dataIndex:'act_date', format: 'd-m-Y', minWidth: 100 },{ text:'project', dataIndex:'project', minWidth: 100 },{ text:'project_date', dataIndex:'project_date', format: 'd-m-Y', minWidth: 100 },{ text:'project_author', dataIndex:'project_author', minWidth: 100 },{ text:'positive_date', dataIndex:'positive_date', format: 'd-m-Y', minWidth: 100 } ] }); и его модель. Ext.define('Foresto.model.CAListModel',{ extend:'Ext.data.Model', fields: [{ name: 'id' },{ name:'renter' },{ name:'date' },{ name:'organ' },{ name:'num' },{ name:'date_reg' },{ name:'kadastre' },{ name:'glr' },{ name:'reason' },{ name:'use_start' },{ name:'use_end' },{ name:'act_num' },{ name:'act_date' },{ name:'project' },{ name:'project_date' },{ name:'project_author' },{ name:'positive_date' }], idField: 'id' }) Вопросы: 1)как решить данную проблему? (Uncaught Error: [Ext.createByAlias] Unrecognized alias: widget. 2)удачно ли спроеткирована указанная выше часть приложения или стоит как то упростить код/использовать другие конструкции? |
Опечатка в классе Foresto.view.forms.LoginWorkSpace "requirs" -> "requires"
|
огромное спасибо, совсем не пришло в голову проверить и эту опечатку.
|
в модели idField? наверно имелось в виду idProperty
|
посмотрите внимательно на класс Foresto.view.forms.LoginWorkSpace
возможно у вас лишняя вложенность компонентов присутствует он содержит одну tabpanel в себе ..почему бы этому классу самому не быть таб панелью как вариант? |
та же история здесь:
{ xtype: 'panel', title: 'ДОГОВОР', items: [ {xtype:'contlistII'} ] },может быть просто: { xtype: 'contlistII', title: 'ДОГОВОР' }, и вот это: { xtype:'panel', layout:'fit', title: 'АРЕНДАТОРЫ', cls:'header-cls', items:[{ xtype:'rentlist' }] }соответственно { xtype:'rentlist', layout:'fit', title: 'АРЕНДАТОРЫ', cls:'header-cls' } |
кроме того в данном классе много пропущенных зависимостей.
всё что используете в классе должно быть упомянуто в requires. например: ... },{ xtype: 'selectfield', label: 'Регион', margin: 4, },{ xtype: 'button', ui:'confirm', text:'Добавить арендатора' },{ ... selectfield (Ext.field.Select) и button (Ext.button.Button) должны быть в requires |
Часовой пояс GMT +3, время: 09:33. |