Vuelidate 在页面加载时多次触发
Vuelidate firing multiple times on page load
我正在使用 Vue,为了验证,Vuelidate。
当使用执行 AJAX 调用的自定义验证器时,它在页面加载时甚至在用户交互之前触发多次(vuelidate 的 $touch
).
在第一次加载这些多次调用后,验证工作正常。 (我在输入更改时使用此验证,使用 vue @change
)
我尝试设置一个标志 isMounted
以仅在加载整个实例后在自定义验证器中执行验证,但没有成功。
代码
验证器(仅带调试,用于测试):
validations() {
return {
myFieldToValidate(field) {
test_validation(value) {
console.log('test validation fired!', Math.random());
return true;
}
}
}
}
然后,当我重新加载页面时,它触发了多次:
我只想根据我的事件(输入更改)进行验证 "fire",而不是在页面加载时多次进行。如何实现?
@change.once
应该可以解决问题
有关详细信息,请参阅 link
https://vuejs.org/v2/api/#vm-once
我结束了我自己的函数,使 ajax 调用,与 vuelidate
分开。我用lodash' _.debounce来控制调用。
我将函数绑定到 @input
事件,根据它进行 ajax
调用并返回 "flag" 属性和结果。
然后,我使用这个标志来检查字段的有效性。
使用这个错误,事件不会在页面加载时触发多次。
我正在使用 Vue,为了验证,Vuelidate。
当使用执行 AJAX 调用的自定义验证器时,它在页面加载时甚至在用户交互之前触发多次(vuelidate 的 $touch
).
在第一次加载这些多次调用后,验证工作正常。 (我在输入更改时使用此验证,使用 vue @change
)
我尝试设置一个标志 isMounted
以仅在加载整个实例后在自定义验证器中执行验证,但没有成功。
代码
验证器(仅带调试,用于测试):
validations() {
return {
myFieldToValidate(field) {
test_validation(value) {
console.log('test validation fired!', Math.random());
return true;
}
}
}
}
然后,当我重新加载页面时,它触发了多次:
我只想根据我的事件(输入更改)进行验证 "fire",而不是在页面加载时多次进行。如何实现?
@change.once
应该可以解决问题
有关详细信息,请参阅 link https://vuejs.org/v2/api/#vm-once
我结束了我自己的函数,使 ajax 调用,与 vuelidate
分开。我用lodash' _.debounce来控制调用。
我将函数绑定到 @input
事件,根据它进行 ajax
调用并返回 "flag" 属性和结果。
然后,我使用这个标志来检查字段的有效性。
使用这个错误,事件不会在页面加载时触发多次。