В ExtJS, как создать вид контроллер для окна, и как сделать окно ребенком панели похожи, как это:Как определить контроллер представления для Ext JS 6 окна
Ext.define('App.view.Main', {
items: [
{ xtype: 'textfield' },
{ xtype: 'window' }
]
});
Причина в том, Я хочу, чтобы один и тот же контроллер представления обрабатывал как действия панели, так и окна. Но Panel, похоже, не принимает окно в качестве своего ребенка.
работа вокруг этого заключается в том, чтобы иметь в контроллере инициализации:
//...
init: function(view) {
this.myWindow = new Ext.window.Window();
}
Но делать это таким образом будет иметь контроллер представления окна указывал на глобальный контроллер приложения, который является нежелательным. Поэтому, чтобы обойти это, я могу добавить в окно кучу слушателей, но это не является предпочтительным.
В любом случае я могу достичь этого без этих уродливых обходных решений?
Вы могли бы попробовать, можно ли связать одну ViewController с двумя разными видами - ваш основной вид и окно. Помимо этого обходного пути, который я не уверен, будет работать, нет, нет. Окно является плавающим компонентом, поэтому оно по определению сохраняется вне обычной иерархии компонентов. Другая возможность - использовать [Контроллер] (http://docs.sencha.com/extjs/6.2.0/classic/Ext.app.Controller.html), который является глобальным для вашего приложения. – Alexander