【发布时间】:2020-04-12 06:04:28
【问题描述】:
在 @vue/cli 4.0.5 应用程序中,我需要将附加 URL 检查添加到 ValidationProvider 规则。我的代码:
<ValidationProvider
name="website"
rules="{ required : true, url: {require_protocol: true} }"
v-slot="{ errors }"
>
但是得到了这个控制台错误:
不存在这样的验证器“{ required ”。
与rules:
rules="required : true, url: {require_protocol: true}"
错误是:
不存在这样的“必需”验证器。
哪种格式有效?
"vee-validate": "^3.1.0",
"vue": "^2.6.10",
修改块:
有规则:
:rules="{ required : true, url: {require_protocol: true} }"
我得到了下一个错误:
vee-validate.esm.js?7bb1:708 Uncaught (in promise) Error: No such validator 'url' exists.
我希望所有方法都必须是可访问的,就像我在导入部分中所做的那样:
...
import {ValidationObserver, ValidationProvider, extend} from 'vee-validate'
import * as rules from 'vee-validate/dist/rules';
Object.keys(rules).forEach(rule => {
extend(rule, rules[rule]);
});
import {localize} from 'vee-validate';
怎么了?
修改块 #2:
在vue文件中
<ValidationProvider
name="website"
:rules="{ required : true }"
v-slot="{ errors }"
>
...
import { ValidationObserver, ValidationProvider } from 'vee-validate'
import { required, email } from 'vee-validate/dist/rules' // MY PHP STORM shows this line in gray color as nonused elements
我仍然有错误:
vee-validate.esm.js?7bb1:708 Uncaught (in promise) Error: No such validator 'required' exists.
我发现文件 /node_modules/vee-validate/dist/rules.js 有行:
var required = {
validate: validate$o,
params: params$h,
computesRequired: computesRequired
};
var testEmpty = function (value) {
return isEmptyArray(value) || includes([false, null, undefined], value) || !String(value).trim().length;
};
var validate$p = function (value, _a) {
var target = _a.target, values = _a.values;
var required;
if (values && values.length) {
if (!Array.isArray(values) && typeof values === 'string') {
values = [values];
}
// eslint-disable-next-line
required = values.some(function (val) { return val == String(target).trim(); });
}
else {
required = !testEmpty(target);
}
if (!required) {
return {
valid: true,
required: required
};
}
return {
valid: !testEmpty(value),
required: required
};
};
...
与示例/提供的链接相比,我没有看到错误语法 我在需要声明之前声明了 ValidationObserver、ValidationProvider。 哪里出错了?
谢谢!
【问题讨论】:
-
您是否尝试过在导入规则的地方添加
Vue.component('ValidationProvider', ValidationProvider)和Vue.component('ValidationObserver', ValidationObserver),然后在实际文件中删除这些导入?
标签: vue.js vee-validate