я учусь vue.js. Я пытаюсь построить форму динамически из данных. Форма основана на условии. Если я выбираю какое-либо поле из поля выбора, то должно отображаться конкретное содержимое, относящееся к этой опции.
Вот данные
Если модель объекта «id: 2» - «Германия», показ из «id: 3» должен стать истинным, а показ из «id: 4» и «id: 5» - ложным.
Аналогично, если модель объекта «id: 2» - «мы», показ с id: 4 должен стать истинным, а показ с «id: 3» и «id: 5» - ложным. .
data(){
return{
fields: [
{
id: 1,
type: "text",
placeholder: "Name",
model: "",
show: true
},
{
id: 2,
type: "select",
placeholder: "Select",
model: "",
show: true,
options: [
{value: "germany", text: "Gemany", id: "germany"},
{value: "us", text: "United States", id: "us"},
{value: "uk", text: "United Kingdom", id: "uk"}
],
events: "onChange"
},
{
id: 3,
type: "paragraph",
text: "Berlin",
show: false
},
{
id: 4,
type: "paragraph",
text: "New York",
show: false
},
{
id: 5,
type: "paragraph",
text: "London",
show: false
}
]
}
}
Вот шаблон
<template>
<div>
<div class="" v-for="field in fields" :key="field.id">
<input :type="field.type" :placeholder="field.placeholder" v-model="field.model" :id="field.id" v-if="field.type == 'text' && field.show">
<select v-model="field.model" :id="field.id" v-if="field.type == 'select' && field.show" @change="onChange(field.id)">
<option v-for="option in field.options" :key="option.id" :value="option.value" :id="option.id">{{option.text}}</option>
</select>
<p v-if="field.type == 'paragraph' && field.show" :id="field.id">{{field.text}}</p>
</div>
<button @click="submit">Submit</button>
</div>
</template>
Методы
onChange(e){
console.log(e)
}
Как мне этого добиться? Спасибо.