Dam*_*ris 13 vue.js vue-component vuelidate
如何在父组件中验证嵌套组件Vuelidate?我想更改parentForm.$invalid子组件中的输入是否有效。
家长:
<parent-component>
</child-component-1>
</child-component-2>
</parent-component>
validations: {
parent: WHAT HERE?
}
Run Code Online (Sandbox Code Playgroud)
Child-1
<child-component-1>
</some-input>
</child-component-1>
data() {
return {
someInput: ""
};
},
validations: {
someInput: required
}
Run Code Online (Sandbox Code Playgroud)
孩子-2
<child-component-2>
</some-input>
</child-component-2>
data() {
return {
someInput: ""
};
},
validations: {
someInput: required
}
Run Code Online (Sandbox Code Playgroud)
Pus*_*kar 19
我可能不是 Vue 专家。如果您在子组件中声明了验证,并且希望从父组件访问它,则可以通过这种方式使用从父组件引用子组件。
在父组件中它会像
<template>
<my-child ref="mychild"> </my-child>
</template>
Run Code Online (Sandbox Code Playgroud)
您可以使用 $v 对象访问在 my-child 组件中声明的验证
this.$refs.mychild.$v
Run Code Online (Sandbox Code Playgroud)
然后您可以轻松地在父组件中使用子组件的验证。希望这将使工作变得更容易,然后使用复杂的方法,它对我有用。
对子组件/表单开始使用vuelidate的最简单方法是使用 pair 提供的 Vue.js 依赖注入机制provide/inject。$v在父组件中创建的实例可以与子组件共享。
随着您对它的进一步微调,您可以使用Vuelidate 数据嵌套,并且只将 的一个子集传递$v给您的子组件。这与 Angular 处理嵌套表单的方式大致相似。它看起来像:
export default {
data() {
return {
form1: {
nestedA: '',
nestedB: ''
} /* Remaining fields */
}
},
validations: {
form1: {
nestedA: {
required
},
nestedB: {
required
}
},
form2: {
nestedA: {
required
},
nestedB: {
required
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以$v为每个组件声明独立的实例。在您的情况下,您将有一个给父母,两个给孩子。当您点击提交按钮时,使用子组件获取引用$refs并检查子组件中的嵌套表单是否有效。
| 归档时间: |
|
| 查看次数: |
10597 次 |
| 最近记录: |