Ext JS无法读取null的属性'getItems'

时间:2015-05-25 14:14:05

标签: javascript extjs

我有一个带有Ext.form.Panel的Ext 4.2.1应用程序,在尝试将表单字段值发送到服务器时,我需要先确定其中一个值来进行切换。对不起,我无法提供完整的示例,但我遇到的麻烦就是这个命令:

form.getForm().findField('TASK_ID')

在我的申请中如果抛出:

TypeError: Cannot read property 'getItems' of null
    at Ext.define.getFields (ext-all-debug.js:89221)
    at Ext.define.findField (ext-all-debug.js:89471)
    at Ext.Ajax.request.success

第89221行如下:

getFields: function() {
    return this.monitor.getItems();
},

我不确定monitor是什么,所以我有点不能深入调试这个。有没有人对可能出错或可以检查的内容有任何见解?

1 个答案:

答案 0 :(得分:2)

当在window.close()之后在Ext.window.Window中创建表单时我得到了相同的错误,调试到源代码,找到窗口再次处理autoRender,实际上在我的单例窗口效果冲突,如下代码:

getUpdateGroupWindow: function(){
        var me = this;
        if(me.updateGroupWindow == null){
            me.updateGroupWindow = Ext.create('MyApp.view.groupEditWindow');
        }
        return me.updateGroupWindow;
    },

阅读api:[http://extjs-doc-cn.github.io/ext4api/#!/api/Ext.window.Window-cfg-closeAction][1]  window closeAction默认为'destroy',从DOM中删除窗口并销毁它和所有后代组件。该窗口无法通过show方法重新显示, 另一个值'hide':通过设置隐藏可见性和应用负偏移来隐藏窗口。该窗口可通过show方法重新显示。

显示我的最终代码:

 Ext.define('MyApp.view.groupEditWindow',{
    extend:'Ext.window.Window',
    title:'修改信息',
    width: 400,
    closeAction: 'hide', //fix error config
    modal: true,
    groupForm:null,
    getGroupForm:function(){
        var me = this;
        if(me.groupForm == null){
            me.groupForm = Ext.create('MyApp.view.EditGroupForm');
        }
        return me.groupForm;
    },

    initComponent: function(){
        var me = this;
        Ext.applyIf(me, {
            items: [me.getGroupForm()],
            buttons: [{
                text: '取消',
                handler: function() {
                    me.close();
                }
            }]
        });
        me.callParent(arguments);
    }
});