簡體   English   中英

如何強制重新檢查 Vuelidate 驗證

[英]How to force a recheck of Vuelidate validation

如何強制 Vuelidate 重新檢查驗證?

我的用例是我有一個表單字段,用戶可以在其中輸入遠程目錄的名稱,並且我有一個 Vuelidate 驗證,它與服務器檢查該目錄是否存在

validations: {
  directory: {
    exists(value) {
      return checkExistsOnServer(value).then(result => result.directoryExists)
    }
  }
}

更新目錄字段時,這將按預期工作。 但是,應用程序中的其他操作可能會影響此目錄是否存在於服務器上,因此我需要一種能夠手動強制此檢查重新運行以響應頁面上的各種事件的方法。 如何在不更改directory字段的值的情況下強制重新運行此exists檢查?

從文檔中,我認為調用this.$v.directory.$touch()會做到這一點,但似乎沒有。 我也試過在$touch() $reset() ) 。

我創建了這個JSFiddle ,展示了我當前不成功的嘗試。

我今天偶然發現了同樣的問題。 我發現使它工作的唯一方法有點hacky:

const directoryValue = this.$v.directory.$model;
this.$v.directory.$model = null;
this.$v.directory.$model = directoryValue;

這似乎迫使重新評估現場驗證。 我猜在 Vuelidate 代碼的某個地方,有一些東西會在驗證之前檢查值是否已更改,這就是為什么我嘗試過的所有$reset$touch都不起作用的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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