Магазин ExtJS загружается неправильно?

У меня есть следующая модель,

Ext.define('Forecaster.model.WeatherDay', {
    extend : 'Ext.data.Model',
    fields : [
        {
            name : 'version', 
            type : 'string',
            mapping : 'version'//'forecast.simpleforecast.forecastday.date.pretty'
        }
    ]
});

Который используется следующим магазином :

Ext.define('Forecaster.store.WeatherDay', {
    extend : 'Ext.data.Store',
    model : 'Forecaster.model.WeatherDay',
    autoLoad : true,
    proxy : {
        type : 'jsonp',
        method : 'GET',
        url : 'http://api.wunderground.com/api/[apiKEY]/forecast10day/q/11432.json',
        reader : {
            type : 'json',
            rootProperty : 'response'
        }
    }
});

Но магазин пуст. Когда я делаю следующее :

console.log(store.getProxy().getReader().rawData);

Далее распечатывается (таким образом, хранилище получает данные):

Введите описание изображения здесь

Который соответствует следующему JSON, который я получаю:

"response": {
  "version":"0.1",
  "termsofService":"http://www.wunderground.com/weather/api/d/terms.html",
  "features": {
  "forecast10day": 1
  }
    }
        ,
    "forecast":{
        "txt_forecast": {
        "date":"5:18 PM EDT",
        "forecastday": [
        {
        "period":0,
        "icon":"cloudy",
        "icon_url":"http://icons.wxug.com/i/c/k/cloudy.gif",
         ...more of the response...

Что я делаю неправильно на этапе сопоставления с моделью, так как я явно получаю данные, но хранилище пусто(getCount() возвращает 0) ?

1 ответ

  1. Похоже, что вы не правильно устанавливаете rootProperty.
    RootProperty должен быть тем, который в ответе указывает на массив моделей WeatherDay.
    Что-то вроде:

    rootProperty: 'forecasts'
    

    ответ сервера: {forecasts: [{version: "some version"},{version: "some other version"}]}

    Если вы хотите вложенный ответ, вы можете перемещаться следующим образом:

    rootProperty: 'response.forecasts'
    

    ответ сервера: {response: {forecasts: [{version: "some version"},{version: "some other version"}] }}