HTML-форма отправляет массивы в одну ячейку - PullRequest
0 голосов
/ 14 января 2019

В моих html-формах я хочу добавить массивы в разные ячейки, но все они помещаются в одну ячейку.

Вот мой ввод HTML:

<input class="recinputs" type="text" name="ingredients[ingredient]" value="egg">
<input class="recinputs" type="text" name="ingredients[amount]" value="2">
<input class="recinputs" type="text" name="ingredients[ingredient]" value="salt">
<input class="recinputs" type="text" name="ingredients[amount]" value="200 gr">

Вот моя схема Мангуста:

  ingredients: [{
    ingredient: {
      type: String,
      ref: 'Ingredient'
    },
    amount: {
      type: String,
    }
  }]

и тело выглядит так:

   { ingredient: [ 'egg', 'salt' ],
     amount: [ '2', '200 gr' ] },

и сохраняет данные в одной ячейке. Но я хочу добавить каждого в разные ячейки. Как мне изменить мои данные?

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

1 Ответ

0 голосов
/ 14 января 2019

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

let objArray = [];
let foodItem = {ingredient: null, amount : null}

for(let i = 0; i< obj.ingredient.length ;i++){
    foodItem.ingredient = obj.ingredient[i];
    foodItem.amount = obj.amount[i];
    objArray.push(foodItem);
    foodItem = {ingredient: null, amount : null};
}

поэтому, используя вашу модель, вы должны сделать это так

let item = new Model(objArray ); 

objArray создан так

0: {ingredient: "egg", amount: "2"}
1: {ingredient: "salt", amount: "200 gr"}

Тогда, наконец, сохраните его, используя item.save ();

...