Я создаю компонент генератора динамических форм, в котором отображаемые элементы управления DOM заполняются службой API. Ключ модели, то есть: v-модель, также добавляется динамически. Я не могу получить доступ к данным, которые пользователь вводит в элемент управления DOM.
Компонент, из которого все данные передаются в генератор форм
<template>
<form-generator :schema="schema" :model="model" :options="formOptions"></form-generator>
</template>
<script>
export default {
components: {
FormGenerator
},
data() {
return {
model: {},
schema: {
fields: [{"id":"dcno1","label":"DC No.","model":"dcno","name":"dcno","ref":"dcno","className":"","type":"input","inputType":"text","required":true,"order":2}]
}
}
}
</script>
В приведенном выше коде поля model и schema.fields заполняются вызовом API-интерфейса async axios.
Если мы передадим значение в модель для модели с именем "dcno", значение будет заполнено в элементе управления вводом
Компонент динамического генератора форм
<template>
<v-form v-if='schema!==null' v-model="model.valid" ref="form" lazy-validation>
<v-flex xs6 v-for='(formItem,index) in schema.fields' v-bind:key='index'>
<v-text-field :v-model='formItem.model' ref="formItem.model"
:label='formItem.label' :rules='formItem.rules'
:value='model[formItem.model]'
:type='formItem.inputType' :value='model[formItem.model]'
:id='formItem.id'>
</v-text-field>
</v-flex>
<v-btn class='float-right' color="primary" @click="submitForm">Submit</v-btn>
</v-form>
</template>
<script>
export default {
name: 'form-generator',
components: {
},
props: {
schema: Object,
model: Object
},
methods:{
submitForm: function(e) {
//how to access the form model values here
}
}
}
</script>
При передаче статического значения в модель dcno: value = 'model [formItem.model]' значение отображается.
Рассмотрим ключ полей имеет набор элементов управления.
Пожалуйста, помогите мне получить значения формы в функции отправки.