我有一个功能:
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
未定义。strObj
在saveToJ
函数外部声明。我究竟做错了什么?
最佳答案
在尝试打开窗口之前,您确定strObj本身不为null吗?如果它已经在范围内,则不必将其传递给Ext.form即可使用。我将使用调试器,并确保它尚未为null。