Как я могу загрузить данные из файла JSON - PullRequest
0 голосов
/ 07 февраля 2012

Я использую extjs и загружаю файл json с загрузчиком магазина.

Я хочу загрузить файл json.Он будет содержать «totalRecords», и я хочу поместить это в var.Например var Records.Таким образом, я могу отображать его на некоторых позициях моего приложения и использовать его для оповещений.

благодаря вашей помощи я знаю, что это:

total = Ext.create('Ext.data.Store', {
model: 'step1',
proxy: {
        type: 'ajax',
        url: 'testevents.json',
        reader: {
            type: 'json',
            root: 'slaevents'
        }
},
listeners: {
    load: function() {
        records = total.getRange()
        test = records[0].get('event')
        alert('1 =' +test)
    }
},
autoLoad:true
});
alert('2 =' +test)

Это будет показывать предупреждение с "1 =Другой".Это правильно.И "2 = неопределенный".Это не правильно.Как я могу использовать тест за пределами этого магазина?

Спасибо

1 Ответ

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

Поймите, что ваш магазин не загружается мгновенно, поэтому в нем ничего нет, когда вы сразу назначаете его переменной в js.Вам нужно прослушать загрузку хранилища и затем назначить его или назначить в обратном вызове.Например, это прекрасно работает:

// get the countries
var countries = Ext.create('Ext.data.Store', {
    fields: ['id','name'],
    proxy: {
        type: 'ajax', 
        url: '../getCountries',
        reader: 'json'
    },
    listeners: {
        load: function() {
            records = countries.getRange()
            alert(records[0].get('name'))
        }
    }
});

Это предупреждает "Аргентина".

records становится массивом Ext.data.Model объектов, каждый из которых имеет всеметоды, которыми обладает Ext.data.Model.Это покрыто здесь в API.

...