Extjs alter store - PullRequest
       1

Extjs alter store

1 голос
/ 17 июля 2011

У меня есть data.store, назовем его store1 bind на графике.Я хочу создать новый магазин из store1 (я хочу сделать вычисления для store1, например, суммировать некоторые записи), скажем store2, а затем связать это с диаграммой. До сих пор любые изменения в store1 отражаются на диаграмме.

Я хочу сохранить это и с store2.

Как мне добиться чего-то подобного?

Я новичок в ext и прошу лучшего понимания архитектуры.

Спасибо

Ответы [ 3 ]

1 голос
/ 18 июля 2011

Сделать слушатель для store1, который после загрузки заполняет локальное хранилище массива (примеры ext со статическими данными) Только store1 - это, например, json, второй store2 - это полностью производные данные

0 голосов
/ 21 апреля 2018

Я понимаю, что это старый вопрос, но хотел немного лучше документировать для тех, кто найдет этот ответ в будущем.

Осторожно при добавлении прослушивателя загрузки в магазин.Если вы используете load listeners, вы должны обязательно включить single: true, чтобы он самоустранился.Если вы не избавляетесь от прослушивателя, это становится «утечкой памяти» в вашей программе, потому что каждый раз, когда вызывается хранилище, добавляется еще один прослушиватель, увеличивая количество элементов, которые сработает загрузчик, и увеличивая объем используемой памяти.

Более чистый способ справиться с этим - использовать обратный вызов для события загрузки

store.getProxy().extraParams = {
WI: Ext.getCmp('transferManagerMain').MenuID,
UID: Ext.getCmp('transferManagerMain').UID,
companykey: obj.$widgetRecord.data.CompanyKey,
transferid: obj.$widgetRecord.data.TransferID
};
store.load({
    callback: function (records, operation, success) {
        var Tier2PayrollWdw = Ext.create('object');
        var responseJson = JSON.parse(operation.getResponse().responseText);
        var warnlinArr = responseJson.warnlines;
        Ext.fireEvent('setDataViewErrWarnLineArr', warnlinArr);
        Tier2PayrollWdw.setWidth(Ext.getBody().getViewSize().width - 300);
        Tier2PayrollWdw.setHeight(Ext.getBody().getViewSize().height - 300);
        Tier2PayrollWdw.setTitle('Data View - ' + 
    obj.$widgetRecord.get('OriginalFileName') + ' Transfer Date: ' + 
    Ext.util.Format.date(obj.$widgetRecord.get('TransferTime'), 'm/d/Y'));
    Tier2PayrollWdw.show();
    }
});

Обратный вызов не продолжает добавлять прослушиватели.

0 голосов
/ 13 января 2015

hpavc запросил истину. Смотрите пример , где метод "transforms" может быть заполнен store2

...