我有一个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')
,那么它确实有效,但我希望将所有自定义消息保存在一个地方,以便在整个应用中使用。
我做错了什么?
答案 0 :(得分:0)
这是我的解决方案:
我在构造函数中创建了一个包含自定义消息的类:
sub esp, 10*4
mov byte [esp], 0x68 ; 'h'
mov byte [esp + 1], 0x69 ; 'i'
mov byte [esp + 2], 0x00 ; null byte
mov byte [esp + 3], 0x79 ; 'y'
mov byte [esp + 4], 0x6f ; 'o'
mov byte [esp + 5], 0x75 ; 'u'
mov byte [esp + 6], 0x00 ; null byte
mov eax, esp
push 0
push eax
add eax, 3
push eax
push 0
call [MessageBoxA]
然后,我将它注入我的import { validationMessages } from 'aurelia-validation';
export class CustomValidationMessages {
constructor() {
validationMessages['customMessage1'] = `My first custom message`;
validationMessages['customMessage2'] = `My second custom message`;
}
}
:
app.js
我可以在整个应用中随处使用import { inject } from 'aurelia-framework';
import { CustomValidationMessages } from "resources/utils/validation-messages";
@inject( CustomValidationMessages )
export class App {
constructor() {
}
configureRouter(config, router) {
.....
}
}
和customMessage1
。我不确定这是最好的方法,但它确实有效。