Запросы JsonRest без HTTP-запросов данных

Я использую OnDemandGrid с хранилищем JsonRest для извлечения данных из RESTful API и отображения их на столе. Таблица довольно сложна, и используются все методы JsonRest CRUD. Вот основная структура, которую я использую:

JsonRest:

...
var restStore = Observable(Cache(JsonRest({
    target:"source", 
    idProperty: "id"
}), Memory()));
...

OnDemandGrid:

...
var grid = new (declare([OnDemandGrid, Selection, Keyboard]))({
    sort: "name",
    store: restStore,
    columns: [
           {field: "name", label: "Name"},
           {field: "state", label: "State"},
           {field: "city", label: "city"}
         ],
    loadingMessage: "Loading data...",
    noDataMessage: "No data"
}, "grid");
grid.startup();
...

Я хочу фильтровать данные на стороне клиента без отправки HTTP-запросов. Можете ли вы дать мне несколько идей, чтобы решить эту проблему?

Собственный поиск:

Учебное пособие по Dgrid основано на том, что все зависит от магазина dojo.

Когда dgrid взаимодействует с хранилищем, все обязанности по подкачке, фильтрации и сортировке ложатся на хранилище, а не на сетку.... При возникновении проблем с рендерингом данных всегда проверяйте, что реализация хранилища (и серверная служба, если применимо) работают должным образом.

Так что это означает, что я должен решить эту проблему на стороне магазина. Полагаю, мне нужно расширить QueryResults магазина JsonRest, но я все время бьюсь об стену.

Я также подумал сделать запрос к Cache - но тогда я теряю JsonRest...

1 ответ

Если вы в основном заинтересованы в первоначальном извлечении полезных данных из вашего сервиса сразу, но затем выполняете всю сортировку / фильтрацию / разбиение на страницы на стороне клиента, взгляните на dojo-smore / RequestMemory - вы передаете url и он в основном действует как хранилище памяти после извлечения данных из URL, за исключением того, что его методы возвращают обещания, а не непосредственные значения.

Другие вопросы по тегам