2012-02-01 3 views
0

Я хочу показать количество записей в json-файле. Файл json - это, например, test.json, и я хочу отобразить количество записей в моем файле extjs.count a json file

Я не могу заставить его работать, но это звучит просто. Кто-нибудь с идеей?

Это то, что я пробовал:

var jsonData = new Ext.data.JsonStore({ 
    url: 'test.json', 
    root: 'ritas', 
}); 
alert(jsonData.length); 

Внимательный покажет мне "не определено".

Когда я пытаюсь тестовый пример, как этот

var jsonData = [{a:1},{b:2},{c:3}]; 
alert(jsonData.length); 

предупреждение будет отображаться 3.

+0

Пожалуйста, разместите часть своего кода. Что вы пробовали? Чего вы ожидали? Что на самом деле произошло? –

+0

Я добавлю код, спасибо –

ответ

1

Категория Ext.data.JsonStore не имеет length. Вместо этого используйте getCount() метод JsonStore, чтобы получить количество кэшированных записей:

var jsonData = new Ext.data.JsonStore({ 
    url: 'test.json', 
    root: 'ritas', 
    fields: [ 'field1', 'field2' ] // record property names go here 
}); 
alert(jsonData.getCount()); 

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.JsonStore-method-getCount

Этот магазин настроен потреблять JSON в следующем формате:

{ 
    ritas: [ 
     {field1: 'field1Value', field2: 'field2Value'}, // record 1 
     {field1: 'field1Value2', field2: 'field2Value2'} // record 2 
    ] 
} 

Является ли ваш сервер возвращает объект в этом формате?

+0

он вернется 0, спасибо btw –

+0

есть ли что-то, что я делаю неправильно? он должен вернуться 3 –

+0

См. мое редактирование. Вы указываете конфигурацию 'fields' для магазина? Возвращает ли объект, возвращаемый с сервера, конфигурацию хранилища? – RoccoC5