extjs: передача переменной в FormPanel - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть функция:

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.

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 29 февраля 2012

Вы уверены, что сам strObj не равен нулю, прежде чем пытаться открыть окно?Вам не нужно передавать его в Ext.form, чтобы иметь возможность использовать его, если он уже находится в области видимости.Я бы использовал отладчик и убедился, что он еще не равен нулю.

0 голосов
/ 29 февраля 2012

это было просто, просто используйте:

editPanel.getForm().findField('name').setValue(strObj.properties.name);

...