如何强制Vuelidate重新检查验证?
我的用例是,我有一个表单字段,用户可以在其中输入远程目录的名称,我有一个Vuelidate验证,它检查服务器是否存在该目录
validations: {
directory: {
exists(value) {
return checkExistsOnServer(value).then(result => result.directoryExists)
}
}
}
当目录字段更新时,此操作按预期工作。但是,应用中的其他操作可能会影响服务器上是否存在此目录,因此我需要一种方法,能够手动强制重新运行此检查以响应页面上的各种事件。如何在不更改directory
字段值的情况下强制重新运行此exists
检查?
从文档中,我认为调用this.$v.directory.$touch()
可以做到这一点,但似乎没有。我还尝试在调用$touch()
之前调用$reset()
。
我创建了这个JSFiddle,显示了我当前未成功的尝试。
1条答案
按热度按时间b0zn9rqh1#
今天我也遇到了同样的问题。我发现的唯一解决方法有点古怪:
这似乎迫使字段验证的重新评估。我猜在Vuelidate代码的某个地方有一些东西在验证之前检查值是否已经更改,这就是为什么我尝试过的所有
$reset
和$touch
都不起作用。