【发布时间】:2020-06-28 05:21:45
【问题描述】:
我有一个简单的表单组件,只有一个选择选项。每当我选择一个选项时,都会在我的主组件中呈现一个子组件。我的问题是我无法让 Vue 将我的父组件数据与子组件数据绑定。
form.settings 是动态的,所以我无法在 Form.vue 处预先设置属性。
此表单通过 axios 提交到 Spring-boot Web 应用程序,当我提交表单时,我看到客户端的 form.settings 为空。
我是 Vue 新手,这是我的尝试:
Form.vue
<template>
<div>
<form>
<div>
<select v-model="form.type">
<option></option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</div>
<PresetOne v-if="form.type == '1'" :settings="form.settings"/>
<PresetTwo v-if="form.type == '2'" :settings="form.settings"/>
</form>
</div>
</template>
<script>
import PresetOne from "@/components/PresetOne"
import PresetTwo from "@/components/PresetTwo"
export default {
name: "SettingsForm",
data: () => ({
form: {
type: null,
settings: null
}
}),
components: {
PresetOne,
PresetTwo
}
}
</script>
PresetOne.vue
<template>
<div>
<input v-model="settings.username" />
<input v-model="settings.password" />
</div>
</template>
<script>
export default {
name: "PresetOne",
data: () => ({
settings: {
username: null,
password: null
}
})
}
</script>
PresetTwo.vue
<template>
<div>
<input v-model="settings.email" />
<input v-model="settings.password" />
</div>
</template>
<script>
export default {
name: "PresetTwo",
data: () => ({
settings: {
email: null,
password: null
}
})
}
</script>
【问题讨论】:
标签: vue.js data-binding vuejs2