我有一个ViewModel,它是空的,因为绑定数据是在其他地方动态设置的,这很好用 -
Ext.define('TestApp.model.modelView', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.test',
singleton: true
});
在我的主视图中,我在按钮点击时调用一个视图,在那里我创建一个新窗口并显示它
Ext.define('TestApp.view.main.Main', {
extend: 'Ext.container.Viewport',
xtype: 'app-main',
requires: [
'TestApp.model.modelView'
],
viewModel: {
type: 'test'
},
items: [
{
...
items: [
{
xtype: 'button',
text: 'Read Out',
margin: '5 10 0 10',
handler: function () {
win = Ext.create('TestApp.view.ReadOutButtonTemplate');
TestApp.Controllers.ReadOutButtonController.windowOpened();
}
},
这是窗口布局
Ext.define('TestApp.view.ReadOutButtonTemplate',
{
extend: 'Ext.window.Window',
alias: 'roTemplate',
itemId: 'roWindow',
requires: [
'TestApp.model.modelView'
],
viewModel: {
type: 'test'
},
controller: 'roTemplate',
xtype:'buttonTemplate',
autoShow: true,
height: 600,
width: 600,
constrainHeader: true,
title: 'Window',
每次我创建一个窗口时,我都想将它添加到模型视图中,每次关闭一个窗口时,如果我有多个打开,我只想破坏交叉点击的窗口,我有试图反映在 -
listeners:{
'close': function (win) {
win.destroy();
}
}
我有一种感觉,每次我打开一个新窗口时,它都会创建一个全新的ViewModel,当我销毁它时,它会破坏整个ViewModel,然后不允许我将它用于其他窗口仍然打开,实际上我希望每个窗口都是独立的,但使用相同的窗口模板。任何关于如何解决这个问题的想法的帮助都将受到赞赏,因为我正在努力寻找任何文件。
注意 - 还有一些控制器连接到应用程序,但这些控制器正如我所料。