在ViewModel中添加和销毁窗口

时间:2015-11-10 19:13:09

标签: javascript extjs window viewmodel

我有一个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,然后不允许我将它用于其他窗口仍然打开,实际上我希望每个窗口都是独立的,但使用相同的窗口模板。任何关于如何解决这个问题的想法的帮助都将受到赞赏,因为我正在努力寻找任何文件。

注意 - 还有一些控制器连接到应用程序,但这些控制器正如我所料。

0 个答案:

没有答案