【发布时间】:2019-12-06 09:10:54
【问题描述】:
我有一些可重用的组件:
- 文本字段
- 表格
还有一个我将它们都导入的组件。我将TextField 组件作为道具传递给Form。在这个Form 组件中,我有一个提交按钮,它需要从传递的TextField 组件中获取所有值。据我在文档中看到的,我可以使用v-model 来获取值。但由于某种原因,我找不到如何在我的 Form 组件中获取这些值。也许我错过了一些东西,我希望有人可以帮助我。我已经看过这个问题:Get all Input values - Vuejs。但是,这并没有解决我的问题。
TextField 组件如下所示:
<template>
<v-text-field
v-model="vModel"
:rules="rules"
:counter="counter"
:label="label"
:required="required"
:placeholder="placeholder"
:value="value"
></v-text-field>
</template>
<script>
export default {
name: "TextField",
props: {
rules: Array,
counter: Number,
label: String,
required: {
type: Boolean,
default: true
},
placeholder: String,
value: String
},
data: () => ({
vModel: '',
}),
};
</script>
Form 组件如下所示:
<template>
<v-form>
<v-container>
<slot></slot>
<v-btn class="mr-4" @click="submit">Submit</v-btn>
</v-container>
</v-form>
</template>
<script>
export default {
methods: {
submit () {
// console.log form data
}
}
};
</script>
以及我导入两个组件的组件:
<template>
<Form>
<v-row>
<v-col cols="12" md="4">
<TextField :label="'Email address'" :vModel="email"/>
</v-col>
</v-row>
</Form>
</template>
<script>
import Form from "../../../components/Form/Form";
import TextField from "../../../components/Form/TextField";
export default {
components: {
Form,
TextField,
},
data: () => ({
email: '',
})
};
</script>
我还创建了一个CodeSandBox。
谁能给我一些建议,告诉我如何从Form 组件中的TextField 组件中获取v-model 值?如果不可能,或者我可能会以另一种方式做得更好,请告诉我。
【问题讨论】:
-
我不是 vuejs/vuetify 专家 - 但
:vModel="email"看起来不像我见过的任何语法 -
我也查看了您的沙盒。您还必须将数据作为道具传递给表单组件,然后从那里提交:codesandbox.io/s/late-forest-7pd8q
标签: vue.js vuejs2 vuetify.js