簡體   English   中英

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;
            }
        }
    }
}

然后,當我重新加載頁面時,它會觸發多次:

multiple-calls

我想讓驗證“觸發”僅基於我的事件(輸入更改),而不是在頁面加載時多次。 如何做到這一點?

@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM