2015-08-26 1 views
0

без ответа: магазин Аякса обслуживания мульти запросов на чтение (практика вопрос лучше всего)ExtJS магазин с Аякса обслуживания нескольких запросов на чтение

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

Предположим, у меня есть магазин, который имеет прокси-сервер, используя класс Ext.data.proxy.Ajax и у меня есть апи со следующим:

proxy: { 
    type: 'ajax', 
    api: { 
     read: 'some/something/list.json', 
     create: 'some/something/insert.json', 
     update: 'some/something/update.json', 
     destroy: 'some/something/destroy.json' 
    } 
} 

теперь, мое чтение запускается с помощью кнопки поиска и когда у меня есть пустое текстовое поле и нажмите «Поиск», он делает запрос через read api, чтобы получить list.json. но я хочу иметь другую прочитать как часть одного и тот же магазин/API для чтения отдельных записей говорят что-то вроде этого:

read: 'some/something/<field_value>.json' 

моего прокси-сервера для чтения уже назначено list.json, но я хочу, чтобы один и тот же магазин прокси, чтобы иметь возможность читать и от отдельных поисков записей. что я не могу иметь два чтения в моем прокси. как я могу это написать?

Помогите мне понять? возможно, мой серверный контроллер должен определить по ключевому слову @PathVariable, если путь - это список i.e .json, тогда вызовите запрос списка db иначе, если .json затем запускает индивидуальный поисковый запрос через db. ?? и если да, то что будет читать: url?

Какой лучший способ спроектировать и построить это?

Заранее спасибо

+0

ли вы рассмотреть вопрос об использовании [ 'setExtraParam'] (https://docs.sencha.com/extjs/4.2.3/#!/api/Ext.data.proxy.Ajax-method-setExtraParam) вместо изменения пути URL? – Greendrake

ответ

0

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

Ext.define('app.model.User', { 
    { 
    fields: [ 
    { name: 'LoginUserId', type: 'string' }, 
    { name: 'FirstName', type: 'string' }, 
    { name: 'LastName', type: 'string' }], 

    proxy: 
    { 
    type: 'rest', 
    url: '/User', 
    reader: 
    { 
    type: 'json', 
    root: '' 
    } 
    } 
    }); 

var user = Ext.ModelMgr.getModel('app.model.User'); 
    user.load(123, { 
     success: function(userObj) { 

     } 
    }); 

 Смежные вопросы

  • Нет связанных вопросов^_^