为 aurelia 验证创建自定义 FluentRule
Create custom FluentRule for aurelia validation
在 Aurelia-Validation 1.3.0 之前,可以为 中提到的 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-validation 文件夹。可能发生的情况是您从重复的包
中修补 FluentRules
在 Aurelia-Validation 1.3.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-validation 文件夹。可能发生的情况是您从重复的包
中修补 FluentRules