2014-01-13 2 views
0

Мне нужно отправить некоторые данные в прокси-сервер магазина и вместо перезагрузки магазина я просто хочу получить эту запись. Это можно сделать?Хранить прокси extraparams восстановить запись

var newRecord = documentStore.getProxy().extraParams = {id:element.data.id}; 

Что-то, как и выше, которые, конечно, не работает

ответ

0

Если данные/запись уже загружена в магазине, то вы можете получить его с помощью store.findRecord() или store.getById() методы.

Но если вы хотите, чтобы запись не была загружена/доступна в магазине, вам необходимо перезагрузить хранилище с необходимыми значениями (фильтром).

Update:

Ну, вы можете захватить itemclick или cellclick события для первой сетки, а также загружать второй магазин сетки с прохождением необходимых параметров фильтра или вы можете создать запрос AJAX, получить ответ и построить записать и добавить его в другой магазин.

+0

Это не в магазине, мне нужно получить его без перезагрузки магазина – Jacob

+0

вы можете сказать мне, что именно вы пытаетесь сделать? Я имею в виду функциональность –

+0

У меня есть две решетки. На клике элемента я хотел бы загрузить новый элемент и добавить его в другую сетку (multi select). Есть ли способ отправить несколько идентификаторов в магазин? – Jacob

0

Если у вас есть прокси-сервер на вашей модели, вы можете использовать статический метод «нагрузки», то есть, если у вас есть модель «Контакт» вы могли бы сделать это:

Contact.load("ID_VALUE", { 
    scope: this, 
    callback: function (record, operation, success) { 
    } 
}); 
0

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

Пожалуйста, исправьте меня, если это не так. Но, исходя из этого предположения, у вас может быть метод загрузки на модели, как bhutten. При возврате модели (т. Е. Обратного вызова) вы добавите эту модель в хранилище с помощью метода Ext.data.Store.add (model). Это добавит запись в хранилище данных без перезагрузки всех данных в хранилище.

Возможно, более элегантный подход может создать собственный магазин (например, myApp.store.MyStore), который расширяет файл Ext.data.Store. Затем создайте свой собственный метод, который принимает идентификатор (или несколько идентификаторов), который может загружать модели в Магазин без перезагрузки всего магазина.

Ext.define('MyApp.store.MyStore' { 
    extend: 'Ext.data.Store', 
    requires: 'Ext.data.reader.Json', 
    model: 'MyApp.model.MyModel', 
    loadMyModel: function (id) { 
    Ext.Ajax.request({ 
     url: 'someurl', 
     params: {id: id}, 
     success: function (resp) { 
     var myModel = null; // parse response into MyModel 
     this.add(myModel); 
     }, 
     scope: this 
    }); 
    } 
}); 
Смежные вопросы