vuejs2 - 使用带参数的自定义规则(vue js - vee validate)
问题描述
我在这里寻求帮助之前查看了 Vee validate 的文档,我在使用带参数的自定义规则时遇到了问题。事实上,我的规则的配置很好,但是我没有找到正确的语法来使它在带有参数的组件中正常工作。我应该在v-validate
相关领域的特征中写什么?
谢谢你的帮助,
这是我的规则:
import { Validator } from 'vee-validate';
Validator.extend('isBigger', (value, [otherValue]) => {
return value <= otherValue;
}, {
hasTarget: true
});
我试过这个但不工作:
<b-form-input ref="bottom"
name="sampling depth bottom"
v-validate="{regex: /^-?\d+[.,]?\d{0,10}$/}"
placeholder="(in cm)"
v-model="inputSamplingDepthBot"
></b-form-input>
<b-form-input
name="sampling depth top"
v-validate="{isBigger:'bottom', regex: /^-?\d+[.,]?\d{0,10}$/}"
placeholder="(in cm)"
v-model="inputSamplingDepthTop"
></b-form-input>
解决方案
无需将整个东西包裹在花括号中。试试这个:
<b-form-input
name="sampling depth top"
v-validate="'isBigger:bottom, regex: /^-?\d+[.,]?\d{0,10}$/'"
placeholder="(in cm)"
v-model="inputSamplingDepthTop"
></b-form-input>
规则名称和参数都应该作为字符串传递。
如果由于某种原因您需要为参数传递一个变量,您可以使用反引号并插入变量,如下所示:
<b-form-input
name="sampling depth top"
v-validate="`isBigger:${someVariable}, regex: /^-?\d+[.,]?\d{0,10}$/`"
placeholder="(in cm)"
v-model="inputSamplingDepthTop"
></b-form-input>
推荐阅读
- selenium-webdriver - HTML UnitDriver 的 Xpath
- bootstrap-4 - 移动分辨率上的 boostrap 4 img-fluid strechs 图像
- logging - journalctl 单元记录在单元仍在运行时停止
- haskell - 在 Haskell 中递归搜索与名称条件匹配的所有文件的目录
- javascript - 你能在内容脚本中杀死监听底层页面事件的事件监听器吗?
- java - What is the SuppressLint Java annotation?
- azure-devops - VSTS 扩展——几个问题(数据存储和 React)
- matlab - 假设解的函数形式的最小二乘
- laravel - 如何通过 Laravel 中的列名获取最新的雄辩关系
- powerbi - Power BI 回复 URL 与为应用程序配置的回复 URL 不匹配