【发布时间】:2020-08-14 15:26:39
【问题描述】:
我想用 vuejs 创建一个无渲染的表单——我正在使用 vuelidate 进行表单验证。表单使用作用域槽来管理模型和控件。
不幸的是,我无法通过无渲染方法实现表单验证的 vuelidate。任何想法将不胜感激。 以下是我尝试过的。
App.vue
<renderless-form>
<form @submit.prevent="submit" slot-scope="{ ele, submit }">
<input type="email" v-model="ele.model.name" />
<button> Submit </button>
</form>
</renderless-form>
<script>
import renderlessFrom from "./components/renderless-form.vue";
export default {
name: "App",
components: {
"renderless-form": renderlessFrom
}
};
</script>
renderless-form.vue
import { required, minLength, between } from "vuelidate/lib/validators";
export default {
data() {
return {
model: {
name: ''
}
};
},
validation: model, //i am sceptical here how to put validation
methods: {
async submit() {
console.log(this.model)
},
},
render() {
return this.$scopedSlots.default({
// Data
ele: this.model,
// Methods
submit: this.submit,
});
},
};
【问题讨论】:
-
请不要破坏您的帖子。通过在 Stack Exchange 网络上发布,您已授予 SE 分发该内容的不可撤销的权利(在 CC-BY-SA 4.0 license 下)。根据 SE 政策,任何破坏行为都将被撤销,随后的尝试将使您被禁止。如果您想取消此帖子与您的帐户的关联,请参阅What is the proper route for a disassociation request?
标签: javascript vue.js vuejs2 vue-component vuelidate