我有一个功能:
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
函数之外声明。
我做错了什么?
答案 0 :(得分:2)
在尝试打开窗口之前,您确定strObj本身不为null吗?你不应该将它传递给Ext.form,以便在它已经在范围内时能够使用它。我使用调试器并确保它不是空的。
答案 1 :(得分:0)
很简单,只需使用:
editPanel.getForm().findField('name').setValue(strObj.properties.name);