В Ember. js ID элементов подмассива не передается в ajax put - PullRequest
2 голосов
/ 06 марта 2020

Я делаю put вызов в ember.js, и я передаю объект, который содержит массив. Идентификатор элемента в этом массиве никогда не передается бэкэнду, но он существует в объекте.

Я выполняю вызов put, используя

this.ajax.put('path', { data: object }.then();

Объект, который я передаю как данные, имеет массив (пример DTO).

object = {
  "array": [
    {
      "id": 0,
      "prop1",
      "prop2",
      "etc..."
    }
  ],
  "prop1",
  "prop2",
  "etc..."
}

Я создаю каждый объект из массива, используя

let objectArray = get(object, 'array');
let elementInObjectArray = //ajax call to get the element to add;
objectArray.pushObject(store.createRecord('element-in-object-array', { 
   id: elementInObjectArray.id,
   prop1: elementInObjectArray.prop1,
   etc...
})

Непосредственно перед моим вызовом put я записываю id из object.array.element.id и они определены и доступны (в виде строки). (См. Изображение)

enter image description here

Тем не менее, этот id никогда не передается бэкэнду, и затем я получаю 404 с сервера, потому что идентификатор является первичным ключом. (См. Изображение моего put request payload)

enter image description here

Я знаю, что ember всегда возвращает string как id при создании запись, но я не думаю, что это причина, по которой она терпит неудачу, поскольку я, вероятно, получу больше как 400 за плохое форматирование. Прямо сейчас, id просто никогда не пройден.

Как я могу убедиться, что идентификатор элемента массива передан в вызове?

...