При проверке дочернего элемента parent не отображаются дочерние сообщения, только родительские.
Как просмотреть все сообщения для проверки дочерних и родительских элементов?
interface IItem {
id: number;
subItem: ISubItem;
customSubItem: ICustomSubItem;
}
interface ISubItem {
someNumber: number;
}
interface ICustomSubItem {
someNumber: number;
}
class CustomSubItemValidator extends Validator<ICustomSubItem> {
constructor() {
super();
this.ruleFor('someNumber')
.greaterThan(2)
.withMessage('Please enter a number');
}
}
class SubItemValidator extends Validator<ISubItem> {
constructor() {
super();
this.ruleFor('someNumber')
.greaterThan(2)
.withMessage('Please enter a number');
}
}
class ItemValidator extends Validator<IItem> {
constructor() {
super();
this.ruleFor('id')
.greaterThan(0)
.withMessage('Please enter your an id');
this.ruleFor('subItem')
.setValidator(() => new SubItemValidator());
this.ruleFor('customSubItem')
.setValidator(() => new CustomSubItemValidator());
this.ruleFor('subItem')
.must((subItem, item) => {
return subItem.someNumber > item.customSubItem.someNumber
})
.withMessage('Sub item number should be greater then custom sub item');
}
}
const itemValidator = new ItemValidator();
console.log(itemValidator.validate({
id: 1,
subItem: { someNumber: 1 },
customSubItem: { someNumber: 2 }
}));