如何在Vue中为v模型使用多维数组?

时间:2019-05-07 11:51:03

标签: javascript arrays vue.js vuejs2 v-model

我想根据用户检查的属性值为在线商店生成属性变体。

问题是我不知道如何从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 :(得分:0)

如果您想将'id'绑定到输入,则应该这样做-

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

不需要attributes[index][indexval],因为您有一个完全相同的嵌套for循环。因此,您可以直接使用attributevalue来访问其在v模型中的属性。

关于v模型的注释:

这是vue中的一种双向绑定机制,只要您的组件支持该类型,它将接受您想要传递给基础组件的任何类型的值。在这种情况下,文本类型的输入将接受字符串/数字值。

v-model在内部使用不同的属性,并针对不同的输入元素发出不同的事件:

  • text和textarea元素使用value属性和input事件;
  • 复选框和单选按钮使用选中的属性并更改事件;
  • 选择字段将值用作道具,将更改作为事件。