Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ExtJS, Ext.data.Store. Проблема с POST запросом. 
V
    Опции темы
Fighter
Дата 13.10.2012, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Здравствуйте. Есть у меня Store:
Код

Ext.define('AM.store.Users', {
   extend: 'Ext.data.Store',
   fields: ['name', 'email'],
   model: 'AM.model.User',
   autoLoad: true,
   proxy: {
       type: 'ajax',
       api: {
            read: 'Main/GetUsers',
            update: 'Main/UpdateUsers'
       },
       reader: {
           type: 'json',
           root: 'users',
           successProperty: 'success'
       }
   }
});


А также у меня есть модель:
Код

Ext.define('AM.model.User', {
   extend: 'Ext.data.Model',
   fields: ['name', 'email']
});


Внутри контроллера есть такой обработчик:
Код

    updateUser: function (button) {
        console.log('clicked the Save button');
        var win = button.up('window'),
            form = win.down('form'),
            record = form.getRecord(),
            values = form.getValues();

        console.log(values);
        record.set(values);
        console.log(record);
        win.close();
        this.getUsersStore().sync();

    }


Все работает. Проблема в следующем. Когда появляется список пользователей, если первый раз открыть запись для редактирования и сохранить её, тогда мы получаем следующий post-запрос:
POST /Main/UpdateUsers?_dc=1350157766279 HTTP/1.1

А в теле запроса вот что:
{"name":"Mark2333","email":"[email protected]","id":2}

Пока что все правильно. 
Затем, если мы следующую запись отредактируем и нажмем Save, то тогда мы можем наблюдать следующую картину в теле запроса:
[{"name":"Mark2333","email":"[email protected]","id":2},{"name":"Mark432322","email":"[email protected]","id":4}]

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

PM MAIL   Вверх
Fighter
Дата 14.10.2012, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 810
Регистрация: 5.1.2005

Репутация: нет
Всего: 2



Вроде бы решил проблему следующим способом:
Код

...
        this.getUsersStore().sync();
        this.getUsersStore().reload();


PM MAIL   Вверх
ExSoft
Дата 18.10.2012, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 29.6.2008

Репутация: 1
Всего: 1



Цитата(Fighter @ 13.10.2012,  22:51)

А в теле запроса вот что:
{"name":"Mark2333","email":"[email protected]","id":2}

Пока что все правильно. 
Затем, если мы следующую запись отредактируем и нажмем Save, то тогда мы можем наблюдать следующую картину в теле запроса:
[{"name":"Mark2333","email":"[email protected]","id":2},{"name":"Mark432322","email":"[email protected]","id":4}]

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

Давать правильный ответ на Ext.data.Store.sync()

Цитата(Fighter @ 14.10.2012,  08:39)
Вроде бы решил проблему следующим способом:
Код

        this.getUsersStore().reload();

При правильном ответе с сервера в этом нет необходимости
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0554 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.