我有一个功能:

function saveToJ(feature) {
    var str = new OpenLayers.Format.GeoJSON(out_options).write(feature, true);
    str = str.replace(/,/g, ', ');
    strObj = Ext.decode(str);
    if(strObj.properties.name == null) {
        ...
    } else {
        if(!win) {
            win = new Ext.Window({
                title : "Edit",
                items : [editPanel],
                closeAction : 'hide'
            });
        }
        win.show();
        }
    }
}


和一个面板:

var editPanel = new Ext.form.FormPanel({
    width : 400,
    defaults : {
        width : 230
    },
    defaultType : 'textfield',

    items : [{
        fieldLabel : 'Name',
        name : 'name',
        allowBlank : false,
    }],

    buttons : [editSaveBtn, editDeleteBtn]

});


我想做的是将strObj.properties.name用作面板上的字段的value
但是value: strObj.properties.name给出错误,指出strObj未定义。

strObjsaveToJ函数外部声明。

我究竟做错了什么?

最佳答案

在尝试打开窗口之前,您确定strObj本身不为null吗?如果它已经在范围内,则不必将其传递给Ext.form即可使用。我将使用调试器,并确保它尚未为null。

10-05 20:52