我有多个通过vee-validate验证的输入,它工作正常,但是我只想检查事件中的某些字段。因此,在看到有关此https://github.com/baianat/vee-validate/issues/1089的问题后,我编写了以下函数:
async checkInputs(){
let inputs = ['input1', 'input2', 'input3', 'input4'];
const results = Promise.all(
inputs.map(input => {
if(this.$validator.validate(input) === true)
null;
else
dictionary.custom[input].required();
})
);
return (await results).filter(element => element != null);
}
这个想法是得到一个包含失败字段错误信息的数组。请注意,我使用了一些console.log来确保输入检查失败时,它返回错误消息。但是当我使用它时:
this.checkInputs().then(function(results) {
console.log(results);
});
我只有一个包含4个未定义值的数组,而不是包含4个字符串的错误消息数组。
答案 0 :(得分:2)
您尝试过table A
吗?
table A
答案 1 :(得分:0)
Array.map()
应该返回值,this.$validator.validate(input)
也应该返回promise,因此您可以这样写:
inputs.map(async input => {
if(await this.$validator.validate(input) === true)
return null;
else
return dictionary.custom[input].required();
})