Читать строку JSON в ExtJS Combobox - PullRequest
1 голос
/ 07 декабря 2010

Я пытаюсь прочитать следующую строку в поле со списком ExtJS:

[
   {"id":"1","company_name":"company a"},       
   {"id":"2","company_name":"company b"}
]

РЕДАКТИРОВАТЬ: Я думаю, что есть некоторая проблема с тем, как мой источник данных JSON форматируетСтрока, потому что у меня нет никакого корня здесь.Важно ли иметь корневой элемент?

Вот мой код Ext JS:

<script type="text/javascript">
Ext.onReady(function() {

  Ext.QuickTips.init();

    var ds = new Ext.data.Store({
        proxy: new Ext.data.ScriptTagProxy({
            url: 'http://somesite.com/someFile.php'
        }),
        reader: new Ext.data.JsonReader({}, 
        [
            {name: 'id', mapping: 'id'},
            {name: 'company_name', mapping: 'company_name'},
        ]
        )
    });


    var search = new Ext.form.ComboBox({
        store        : ds,
        fieldLabel   : 'Query string',
        displayField : 'company_name',
        typeAhead    : true,
        loadingText  : 'Searching...',
        pageSize     : 5,
        renderTo     : Ext.getBody(),
        width        : 200,
        mode: 'remote'
    });

});

Но, к сожалению, я не могу заставить это работать.:( Пожалуйста, помогите!

Я n00b в JavaScript.

1 Ответ

2 голосов
/ 07 декабря 2010

Да, вам нужен рут.См. Документацию по JsonReader, параметр конфигурации root: обязательный .

Также: если вы не выполняете какую-либо междоменную выборку данных, вам, вероятно, не следует использоватьScriptTagProxy.ScriptTagProxy требует, чтобы сервер упаковывал json-закодированные данные в вызов функции.Если вы просто перезваниваете на тот же сервер, используйте вместо него HttpProxy.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...