【发布时间】:2017-05-09 07:38:11
【问题描述】:
我有一个 Aurelia 应用程序,我正在使用 Aurelia 验证工具进行客户端验证。我想使用validationMessages 字典来定义自定义验证消息列表,以便使用withMessageKey 在我的应用程序中使用,如下所示:
import {validationMessages} from 'aurelia-validation';
validationMessages['customMessage1'] = `My first custom message`;
validationMessages['customMessage2'] = `My second custom message`;
然后当我在类上设置验证规则时:
import { ValidationRules } from "aurelia-validation";
export class SampleObject {
text1;
text2;
constructor() {
ValidationRules
.ensure(a => a.text1)
.required()
.then().satisfies(x => x.trim() === x)
.withMessageKey('customMessage1')
.ensure(a => a.text2)
.satisfies( x => x.length > 5)
.withMessageKey('customMessage2')
.on(this);
}
};
验证有效,但自定义消息不显示,标准消息显示。例如,如果我改用 withMessage('My first custom message'),那么它确实有效,但我想将所有自定义消息保存在一个位置,以便在整个应用程序中使用。
我做错了什么?
【问题讨论】:
-
您在哪个文件中定义您的自定义消息?您确定该文件已加载吗?您能否尝试将自定义消息放入您声明验证规则的同一文件中?
-
我尝试将自定义消息放在一个单独的文件中,与类在同一个文件中(但在类之外),以及在使用类的视图模型中。这些都不起作用。如果我在类中包含验证消息,我就能让它工作,但这并不是我真正想要的,因为我想在整个应用程序中使用它们
-
您可以尝试在您的班级中导入
validationMessages吗?将您在课堂上的第一行更改为import { ValidationRules, validationMessages } from "aurelia-validation"; -
我可以通过将我的自定义
validationMessages放在我的app.js的构造函数中来让它工作。这并不完全干净,所以我仍然需要想一个更好的方法来确保消息被加载。
标签: aurelia