【问题标题】:Create custom FluentRule for aurelia validation为 aurelia 验证创建自定义 FluentRule
【发布时间】:2019-09-20 15:07:05
【问题描述】:

在 Aurelia-Validation 1.3.0 之前,可以为 this thread 中提到的 aurelia 验证添加自定义 FluentRule。 但是,我无法让它与较新的版本一起使用,例如最新 (1.5.0)。

我的代码:

import { FluentRuleCustomizer, FluentRules, validationMessages, ValidationRules, FluentEnsure } from 'aurelia-validation';

export function validateEmailPattern(value: any, obj: any, pattern: RegExp) {
    return value === null || value === undefined || pattern.test(value);
}
export function configureValidation() {
    ValidationRules.customRule(
        'validEmailPattern',
        validateEmailPattern,
        `\${$displayName} must be a valid email format`);
}

declare module 'aurelia-validation/dist/aurelia-validation' {
    interface FluentRules<TObject, TValue> {
        validEmailPattern(value: RegExp): FluentRuleCustomizer<TObject, TValue>;
    }

    interface FluentRuleCustomizer<TObject, TValue> {
        validEmailPattern(value: RegExp): FluentRuleCustomizer<TObject, TValue>;
    }
}

FluentRules.prototype.validEmailPattern = function(value: RegExp) {
    return this.satisfiesRule('validEmailPattern', value);
};

FluentRuleCustomizer.prototype.validEmailPattern = function(value: RegExp) {
    return this.satisfiesRule('validEmailPattern', value);
};

错误信息:

Unhandled promise rejection: reason=TypeError:
aurelia_validation_1.ValidationRules.ensure(...).required(...).satisfiesRule(...).ensure(...).required(...).ensure(...).required(...).satisfiesRule(...).when(...)
.ensure(...).required(...).when(...).ensure(...).required(...).when(...).then(...).validEmailPattern is not a function

任何想法或提示如何使用 aurelia-validation 1.5.0 和打字稿来完成? 我知道有一个匹配规则,它可以和一个模式一起使用,但这只是一个例子,我想用这种方式定义更多的规则。

提前感谢您的帮助。

【问题讨论】:

    标签: typescript aurelia


    【解决方案1】:

    检查您是否在本地包依赖项中没有重复的 aurelia-validation 文件夹。可能发生的情况是您从重复的包中修补 FluentRules

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-22
      • 2013-04-26
      • 2019-07-01
      • 1970-01-01
      • 2016-12-31
      • 2012-10-17
      • 2012-01-01
      • 2021-12-16
      相关资源
      最近更新 更多