Доступ к дополнительным свойствам из JSON, полученным через метод загрузки магазина - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть сетка, которая загружает данные через хранилище JSON, однако есть некоторые дополнительные свойства помимо самих записей, к которым мне нужно получить доступ. Вот пример того, как выглядят данные JSON:

{
    success: true,
    records: [
        {id: 1, name: 'bob'},
        {id: 2, name: 'fred'}
    ],
    extraProperty: 'foo'
}

Мне нужно получить доступ к этому extraProperty при загрузке данных сетки. Итак, я предполагаю, что хочу обратный вызов, например:

store.load({
    callback: function (records, operation, success) {
        //somehow access extraProperty here
    }
});

Я не уверен, что делать внутри этого обратного вызова. Переменная операции, объект Ext.data.operation.Operation, имеет закрытый метод getResponse (). Он возвращает объект в Chrome, который имеет свойство response Json, но в IE он вместо этого имеет свойство responseText, которое необходимо декодировать. Так что я мог бы справиться с обоими сценариями ios, но, поскольку это частный метод, я не очень хочу полагаться на него в первую очередь. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

вы пробовали на уровне магазина, что-то вроде ниже

под прокси в разделе конфигурации ридера

proxy: {
  type: 'ajax',
  actionMethods: {
    read: 'GET'
  },
  headers: {
    'Content-Type': 'application/json;charset=utf-8'
  },
  api: 'your url',
  reader: {
      extraProperty: 'extraProperty'
  }
}
0 голосов
/ 21 февраля 2020

Используйте конфигурацию keepRawData на считывателе.

store.load({
    callback: () => {
        const { extraProperty } = store.getProxy().getReader().rawData;
    }
});

В зависимости от ваших потребностей, вы также можете посмотреть на preserveRawData.

...