vuejs2 - 扩展异步规则中的 Vee 验证消息无法显示错误消息
问题描述
我正在使用 vee validate 和 vuetify,我需要检查电子邮件是否是唯一的。所以在我的 vuejs 中我添加了
mounted(){
extend('unique-email', (value) => {
return this.$axios.post('/api/auth/unique-email', { email: value })
.then((res) => {
return {
valid: true,
};
}, (err) => {
return {
valid: false,
data: { message: 'Email already registered' }
};
})
}, {
immediate: false
})
}
在我的 vuetify 中,我添加了
<v-textfield v-model="form.email" rules="required|email|unique-emai">
以上适用于所有规则,但不能解析email already registred
来自唯一电子邮件规则的消息。我需要添加什么,以便如果异步验证失败,则显示来自错误部分的消息。
目前它仅email is not valid
在唯一电子邮件验证器失败时显示消息。我错过了什么?
解决方案
如果您查看文档,您似乎需要手动处理 POST 调用产生的错误,因此您可以这样做,而不是只在错误处理程序中返回一个对象:
extend('unique-email', (value) => {
return this.$axios.post('/api/auth/unique-email', { email: value })
.then((res) => {
return {
valid: true,
};
}, (err) => {
this.$refs.myValidationObserver.setErrors({
email: ['Email already registered']
});
})
}, {
immediate: false
})
这需要超出扩展的两个更改:
- 将属性添加
vid="message"
到您周围的 ValidationProvider (VP)v-textfield
- 将属性添加
ref="myValidationObserver"
到您的 ValidationObserver 中,该属性将 VP 包装在第 1 点中。
或者,也许我错过了什么!您从哪里得到返回问题中对象的想法?我在当前的文档中看不到类似的东西......
return {
valid: false,
data: { message: 'Email already registered' }
};
推荐阅读
- clickhouse - 我可以在不经过物化视图的情况下在 AggregatingMergeTree 中插入聚合状态吗
- visual-studio-2010 - Visual Studio 2010 资源视图 - 烦人的“空”条目
- node.js - Heroku node.js/express 应用程序在升级 Cedar 堆栈后崩溃
- php - 在while循环中分配新变量
- python - Python pandas“转移”以将行追加到数据帧的末尾?
- blockchain - 执行新种子时 Indy-cli 崩溃
- swift - @ObservableObject 的 Swift 链
- javascript - 使用 Javascript(不是麦克风)录制网页音频
- neural-network - 创建一个具有归一化权重的简单 PyTorch 神经网络
- jenkins - 除非漏洞警报阈值关闭,否则 Prisma Twistlock 无法构建 Jenkins