2017-03-21 40 views
1

如何將模型中的值傳遞給v-validate(VeeValidate)指令。Vue.js v-validate從模型中獲取值

v-validate="'required|unique-email:model.Email'" 

很明顯,我想從data可變更換model.Email

這裏的驗證碼

VeeValidate.Validator.extend('unique-email', { 
    messages: { 
     en: (field, args) => { 
      return "Email Taken"; 
     } 
    }, 
    validate: (value, args) => { 
     return profileService.emailTaken(value).then((response) => { 
      console.log(args); <-- i need email model in here, 
      var emailTaken = response.data; 
      return new Promise(resolve => { 
       resolve({ 
        valid: !emailTaken 
        //data: value !== 'trigger' ? undefined : { message: 'Not this value' } 
       }); 
      }); 
     }); 
    } 
}); 

回答

1

最簡單方法是

v-validate="'required|unique-email:' + model.Email" 

這將在

validate: (value, args) 

添加model.Email爲args數組的第一個元素此外,爲了什麼值得,

 return new Promise(resolve => { 
      resolve({ 
       valid: !emailTaken 
       //data: value !== 'trigger' ? undefined : { message: 'Not this value' } 
      }); 
     }); 

可縮短至

return Promise.resolve({valid: !emailTaken}); 
+0

哇感謝。在我的一次嘗試中,我非常親近。我錯過了'+':)謝謝。 – Robert