[英]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;
}
}
}
}
然后,當我重新加載頁面時,它會觸發多次:
我想讓驗證“觸發”僅基於我的事件(輸入更改),而不是在頁面加載時多次。 如何做到這一點?
@change.once
應該可以解決問題
有關更多信息,請參閱鏈接https://v2.vuejs.org/v2/api/#vm-once
我結束了制作自己的函數來進行 ajax 調用,與vuelidate
。 我使用lodash' _.debounce來控制調用。
我將該函數綁定到@input
事件,基於它進行ajax
調用並返回一個帶有結果的“標志”屬性。
然后,我使用這個標志來檢查字段的有效性。
使用此 abordage,該事件不會在頁面加載時多次觸發。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.