Длинные имена классов видов диалогов... как сократить?
Вот такое у меня типичное имя класса вида:
Ews.office.view.element.sashAssemblyDiagramList.sa shAssemblyDiagramDialog.SashAssemblyDiagramDialog И соответственно контроллер вида: Ews.office.view.element.sashAssemblyDiagramList.sa shAssemblyDiagramDialog.SashAssemblyDiagramDialogC ontroller Здесь Ews.office.view думаю всем понятно. Далее element.sashAssemblyDiagramList это собственно имя вида. И наконец sashAssemblyDiagramDialog.SashAssemblyDiagramDialo g это имя диалогового окна для этого вида. Так как вид это таблица с кнопками Добавить, Редактировать и Удалить. И нужен диалог для добавления и редактирования строк в таблице. Вот как сократить это дело? При чем xtype тоже нехилый выходит: xtype: "element-sashassemblydiagramlist-dialog" |
Может алиасы использовать?
Ext.define('Person.Panel', { alias: 'widget.personpanel', extend: 'Ext.panel.Panel', title: 'Персональная панель', html : 'Новая панель' }); Ext.application({ name: 'HelloExt', launch: function() { Ext.create('Ext.container.Viewport', { layout: 'fit', items: [ { xtype: 'personpanel' }] }); } }); |
У меня уже и алиасы километровые.
Не понятно что с этим можно поделать. |
расслабиться и жить с этим... в энтерпрайз проектах длинные имена это нормально
|
А может, стараться избегать повторений в именах? Сделайте структуру типа такой:
[view] -[element] --[sashAssemblyDiagram] ---List.js ---ListController.js ---Dialog.js ---DialogController.js |
Можно и так. Правда когда откроешь несколько List.js из разных папок, то начинается путаница. Потому я их именую более длинно, но зато уникально.
|
Кстати, насчёт нескольких путающих List.js из разных папок, тоже замечал у нас эту проблему. Может действительно лучше использовать полные имена в Ext.Define()... Спасибо за идею.
Но вот вам собственно xtype можно же и поменьше размерами придумывать? |
я пока не знаю как меньше сделать. Проблема в том, что xtype должен быть уникальным не только в пределах вашего пакета или приложения, а также в пределах сторонних пакетов.
нужен xtype, который был бы уникальным в пределах директории. Это бы решило проблему |
А вам вообще нужен этот xtype? Если некий компонент не предусмотрен для реюза из разных частей приложения, то можно просто его создавать в конфиге.
... controller: new MyController(), viewModel: new MyModel(), ... Это правда не решает вашу проблему с длинными именами, но от лишних сущностей избавитесь. |
Вот именно, проблему это не решает. И запускать new на этапе создания классов чревато проблемами. Потому и необходим декларативный способ инстнацирования объектов, чтобы new запускался на этапе создания экземляров классов.
|
Часовой пояс GMT +3, время: 11:36. |