2017-03-21 45 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