У меня есть EditorGridPanel
с кнопкой на панели инструментов для добавления новых записей. Все отлично работает, кроме одного сценария. Когда я пытаюсь вставить запись, которая уже существует в базе данных, сервер отправляет обратно:
{"success":false,"message":"already exists","data":{}}
, но grid
создает новую строку, отмеченную красным треугольником. Если после этого я пытаюсь вставить новую запись (даже если она не существует в базе данных), все отлично работает на стороне сервера, но я получаю «неперехваченное исключение» в firebug. Там написано:
'uncaught exception: Ext.data.DataReader: #realize was called with invalid remote-data. Please see the docs for DataReader#realize and review your DataReader configuration.'
почему это?
EDIT
Я обнаружил, что:
Когда я пытаюсь вставить новую запись, я использую метод вставки, который отправляет почтовый запрос с параметром data
на сервер (кодирование - true, список - true):
data [{"Name":"123"}]
и он получает с сервера:
{"success":true,"data":{"PositionId":"eef1d9f3-9fdf-4b87-9f6c-ef42231f4fed","Name":"123"}}
после этого я пытаюсь создать предмет с таким же именем:
data [{"Name":"123"}]
так я получаю:
{"success":false,"message":"already exists","data":{}}
с сервера.
В следующий раз, когда я пытаюсь создать нужный элемент, магазин отправляет массив с 2 элементами
data [{"Name":"1234"},{"Name":"123"}]
но сервер создает только первый (самый новый) элемент и отправляет обратно:
{"success":true,"data":{"PositionId":"1ff05c7f-d5fc-41cd-81f3-faabc225b2a6","Name":"1234"}}
Таким образом, ошибка может произойти, потому что хранилище просит сервер создать 2 элемента, но только один отправляется обратно.
Так как с этим бороться? Можно ли сделать так, чтобы магазин больше не отправлял запрос на неудачный товар?