05.05.2017, 21:33
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
Длинные имена классов видов диалогов... как сократить?
Вот такое у меня типичное имя класса вида:
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"
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
|
|
24.10.2017, 11:30
|
Новичок на форуме
|
|
Регистрация: 24.10.2017
Сообщений: 7
|
|
Может алиасы использовать?
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'
}]
});
}
});
|
|
25.10.2017, 22:00
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
У меня уже и алиасы километровые.
Не понятно что с этим можно поделать.
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
|
|
26.10.2017, 10:59
|
Профессор
|
|
Регистрация: 07.08.2013
Сообщений: 214
|
|
расслабиться и жить с этим... в энтерпрайз проектах длинные имена это нормально
|
|
27.10.2017, 12:31
|
|
Профессор
|
|
Регистрация: 06.06.2014
Сообщений: 292
|
|
А может, стараться избегать повторений в именах? Сделайте структуру типа такой:
[view]
-[element]
--[sashAssemblyDiagram]
---List.js
---ListController.js
---Dialog.js
---DialogController.js
|
|
30.10.2017, 12:39
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
Можно и так. Правда когда откроешь несколько List.js из разных папок, то начинается путаница. Потому я их именую более длинно, но зато уникально.
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
|
|
31.10.2017, 13:41
|
Новичок на форуме
|
|
Регистрация: 24.10.2017
Сообщений: 7
|
|
Кстати, насчёт нескольких путающих List.js из разных папок, тоже замечал у нас эту проблему. Может действительно лучше использовать полные имена в Ext.Define()... Спасибо за идею.
Но вот вам собственно xtype можно же и поменьше размерами придумывать?
|
|
31.10.2017, 15:37
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
я пока не знаю как меньше сделать. Проблема в том, что xtype должен быть уникальным не только в пределах вашего пакета или приложения, а также в пределах сторонних пакетов.
нужен xtype, который был бы уникальным в пределах директории. Это бы решило проблему
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
|
|
31.10.2017, 16:59
|
|
Профессор
|
|
Регистрация: 06.06.2014
Сообщений: 292
|
|
А вам вообще нужен этот xtype? Если некий компонент не предусмотрен для реюза из разных частей приложения, то можно просто его создавать в конфиге.
...
controller: new MyController(),
viewModel: new MyModel(),
...
Это правда не решает вашу проблему с длинными именами, но от лишних сущностей избавитесь.
|
|
31.10.2017, 17:15
|
|
Соединяю Node.js и Ext JS
|
|
Регистрация: 25.06.2009
Сообщений: 1,033
|
|
Вот именно, проблему это не решает. И запускать new на этапе создания классов чревато проблемами. Потому и необходим декларативный способ инстнацирования объектов, чтобы new запускался на этапе создания экземляров классов.
__________________
Хусамов Сухроб, Москва, khusamov@yandex.ru
Мой JS-стек: Sencha ExtJS 6, Node.js, TypeScript.
|
|
|
|