Vuevalidate 异步验证结果到循环



我使用 Vue 验证

我的 vuevliate 中有以下内容

validations: {
user_form: {
email: {required,email, isUnique(value) {
// standalone validator ideally should not assume a field is required
if (value === '') return true;
// simulate async call, fail for all logins with even length
return new Promise((resolve, reject) => {
this.$http.post("v1/user-management/users/email-registeredi",{email:value}).then((res)=>{
console.log("res is ", res);
resolve(true);
},(err)=>{
reject(false)
})
})
}},
role: {required},
password: {required}
}
},

上面创建了一个 http 请求的无限循环,尤其是当它收到错误时

我哪里出错了

如果 vue 验证不能很好地处理拒绝承诺并创建无限循环。
你可以尝试,async awaitVue 验证的 isUnique 尝试并在错误时捕获返回false
就像这样。

validations: {
user_form: {
email: {
required,
email,
async isUnique (value) {
if (value === '') return true
try{
const response = await this.$http.post("v1/user-management/users/email-registeredi",{email:value})
return true;
}
catch(e){
return false;
}   
}
}
}

你不需要使用"new Promise",因为 vue-resource 已经这样做了。试试这个:

validations: {
user_form: {
email: {required,email, isUnique(value) {
// standalone validator ideally should not assume a field is required
if (value === '') return true;
// simulate async call, fail for all logins with even length
return this.$http.post("v1/user-management/users/email-registeredi",{email:value}).then((res)=>{
console.log("res is ", res);
return true;
},(err)=>{
return false;
});
}},
role: {required},
password: {required}
}
},

相关内容

  • 没有找到相关文章

最新更新