vue.js - 在 Vuelidate/VueJS 中访问当前范围之外的验证属性?
问题描述
给定 Vue 2 中使用vuelidate
from 属性验证的以下组件:
<template>
// template stuff here...
</template>
<script>
import { validationMixin } from "vuelidate";
import { required, requiredIf } from "vuelidate/lib/validators";
export default {
name: "ParentComponent",
mixins: [validationMixin],
data() {
return {
selected: false,
user: {
email: null,
password: null,
},
};
},
validations: {
selected: { required },
user: {
email: { required: requiredIf((vm) => vm.selected) },
password: { required: requiredIf((vm) => vm.selected) },
},
},
};
</script>
属性user.email
和user.password
是必需的,但前提是验证selected
成功通过。但是,这种方法似乎不起作用,可能是因为selected
它不是user
验证对象的一部分。
有没有办法访问这个验证属性?像这样的东西...
validations: {
selected: { required },
user: {
email: { required: requiredIf((vm) => vm.$parentVm.selected) },
password: { required: requiredIf((vm) => vm.$parentVm.selected) },
},
},
解决方案
就这样。演示https://codesandbox.io/s/green-darkness-90fjs。
requiredIf
解决这个问题的好方法
推荐阅读
- java - 如果在 java 中没有按下按钮,则在 5 秒后关闭 showOptionDialog
- ruby-on-rails - Rails - Docker - 在开发中查找 Rails 根路径
- r - 比较数据帧并在 r 中标记匹配项
- dart - 与 Flutter 共享首选项,我做错了什么?
- yarnpkg - 如何使用 Yarn 基于锁文件安装软件包?
- ruby-on-rails - 在哪里放置关注点和控制器之间共享的代码
- r - r - chunked::read_csv_chunkwise 列超过需要会产生错误
- hadoop - 获取错误 nativeio.NativeIO:在 Windows 中通过 Eclipse 运行 MapReduce 时无法初始化 NativeIO 库
- grafana - 如何在grafana中将prometheus直方图可视化为频率条形图
- iis-8 - SQL Server Master Data Services 网站的 IIS 应用程序池未启动