【发布时间】:2019-10-15 19:33:54
【问题描述】:
我有一个自定义文本输入组件,我将其包装在验证提供程序中。
基本上是这样的:
<validation-provider :rules="rules"
:vid="vid"
:name="name"
v-slot="{ errors, classes }"
slim>
<div class="base-text-box"> ... </div>
</validation-provider>
有时我需要验证它,但在某些情况下我不需要它。如果我不需要验证,我不会通过 rules 属性。
但是当我不需要验证我的组件时,如何禁用提供程序?在文档中找不到任何相关属性。
【问题讨论】:
-
只需将
rules字符串设为空即可。没有规则 - 没有验证 - 没有错误 -
另外,您可以将规则作为对象而不是字符串传递。对于这种情况,规则看起来像
{ required: true, email: true },然后你可以通过一些规则来操作只是切换真假值。在这种情况下,您需要创建变量,例如isRequired并将其传递给您的组件 -
试图将规则传递为 1) 未定义 2) null 3) 空字符串,在所有情况下输入获取“有效”类以防焦点事件..:(
-
那是真实的行为......我写了“没有规则 - 没有验证 - 没有错误”。所以这就是为什么当你传递空的
rules时输入是有效的。这是你写的“当我不需要验证时禁用提供程序”的情况。如果您想要其他逻辑,请澄清。可能,您可以在div的构造:class={'invalid': errors.length}中玩耍,而不是在v-slot对象中使用classes。
标签: vue.js vee-validate