Javascript Sencha architect弹出窗口

Javascript Sencha architect弹出窗口,javascript,extjs,sencha-architect,Javascript,Extjs,Sencha Architect,我有一个网格,我尝试打开id为“popup”的视图,类型为“Ext.form.panel”,以编辑网格中的单个条目 我的结论如下: onGridpanelSelect: function(rowmodel,record,index,e0pts) { if(Ext.getCmp('popup')) var sample = Ext.getCmp('popup'); else var sample = Ext.create('MyApp.view.popup'); sampl

我有一个网格,我尝试打开id为“popup”的视图,类型为“Ext.form.panel”,以编辑网格中的单个条目

我的结论如下:

onGridpanelSelect: function(rowmodel,record,index,e0pts) {
    if(Ext.getCmp('popup')) var sample = Ext.getCmp('popup');
    else var sample = Ext.create('MyApp.view.popup');
    sample.update(record.data);
    // Ext.Viewport.add(sample);
    Ext.Viewport.setActiveItem(sample);
}
但是Firefox告诉我Ext.Viewport.add和Ext.Viewport.setActiveItem都不是函数。他到底想告诉我什么


TypeError:Ext.Viewport.add不是函数
TypeError:Ext.Viewport.setActiveItem不是函数
,具体取决于注释是否存在)

在Sencha Touch中,
Ext.Viewport
是单例,但在ExtJS中不是。并且不是静态方法,因此只能从
视口
实例调用它

如果已经创建了视口,则可以通过组件查询获取对该视口的引用:

var viewport = Ext.ComponentQuery.query('viewport')[0];
// Now, we've got an instance!
viewport.add( ... );
现在,给定组件(弹出窗口)的名称,我不会费心将其添加到视口中,而是将其显示在模式窗口中。。。你知道,就像一个弹出窗口;)

var sample = Ext.getCmp('popup') || new MyApp.view.popup;

sample.update(record.data);

var win = Ext.widget('window', {
    title: "Sample"

    ,autoShow: true
    ,modal: true

    ,layout: 'fit'
    ,items: [sample]

    ,width: 300
    ,height: 300

    ,buttons: [{
        text: "Ok"
        ,handler: function() {

            // maybe you'll want to process your form here

            // remove your component before closing the window
            // to avoid having it auto destroyed
            win.remove(sample, false);

            win.close();
        }
    }]
});