Как я могу использовать многомерный массив для V-модели в Vue? - PullRequest
0 голосов
/ 07 мая 2019

Я хочу создать вариант атрибута для интернет-магазина на основе значений атрибутов, проверенных пользователем.

Проблема в том, что я не знаю, как получить доступ к значениям атрибутов из v-модели и чтоТип данных должен быть v-модель?

Я застрял здесь. Ниже мой код.

Спасибо!

<div v-for="(attribute, index) in attributes">
    <p>{{ attribute.name }}</p>
    <div v-for="(attributevalue,indexval) in attribute.attribute_values">
        <input v-model="attributes[index][indexval]"  :value="attributevalue.id">
        <label>{{ attributevalue.name }}</label>
    </div>
</div>
<p>Generate</p>

export default {
   props:{
     attributes:{
      type:Array
     }
   }
}

1 Ответ

0 голосов
/ 07 мая 2019

Если вы хотите связать 'id' с вводом, то это то, что вы должны сделать -

<input type="text" v-model="attributevalue.id" >

Это attributes[index][indexval] не понадобится, поскольку у вас есть вложенный цикл for, который выполняет точнотот же самый.Следовательно, вы можете напрямую использовать attributevalue для доступа к его свойствам в v-модели.

Примечание о v-модели:

Это двусторонний механизм связывания в vue, и он будет приниматьлюбой тип значения, которое вы хотите передать вашему базовому компоненту, если ваш компонент поддерживает этот тип.В этом случае ввод с типом text принимает строковые / числовые значения.

v-модель внутренне использует разные свойства и генерирует разные события для разных элементов ввода:

  • элементы text и textarea используют свойство value и событие ввода;
  • флажки и радиокнопки используют свойство selected и событие события;
  • в полях выбора значение используется как пропеллер и изменяется как событие.
...