在Aurelia中使用withMessageKey进行自定义验证消息

时间:2016-12-23 15:36:39

标签: aurelia aurelia-validation

我有一个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'),那么它确实有效,但我希望将所有自定义消息保存在一个地方,以便在整个应用中使用。

我做错了什么?

1 个答案:

答案 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。我不确定这是最好的方法,但它确实有效。