Предположим, что у меня есть компонент AngularJS, который отображает входные данные для пользователя, чтобы ввести свое имя и фамилию следующим образом:
First name: <input ng-model="ctrl.firstName" required /><br />
Last name: <input ng-model="ctrl.lastName" required />
Предположим, что компонент называется «Ввод имени», и я использую егокак часть другой формы, например так:
<form kendo-validator="ctrl.validator">
<name-input></name-input><br />
Quest: <input ng-model="ctrl.quest" required /><br />
Favorite Color: <input ng-model="ctrl.favoriteColor" required
</form>
В результате получается форма с четырьмя входами: Имя, Фамилия, Квест и Любимый цвет.
Однако, когда я вызываю validator.validate
, я вижу, что только Квест и Любимый Цвет будут проверены.Я попытался объявить валидатор пользовательского интерфейса Kendo для компонента ввода имени, но он не работает.Во время выполнения валидатор, объявленный внутри компонента «Ввод имени», не определен.
Единственное решение, с которым я столкнулся, кажется разумным, - это использовать validator.validateInput
на каждом входе, как описано здесь: https://www.newventuresoftware.com/blog/code-bites-validate-any-dom-element-with-kendoui-validator
В этом случае, я думаю, мне нужно будет вызвать validator.validate
для проверки Quest и Favorite Color, но мне придется дважды вызывать validator.validateInput
для двух входов внутри компонента Name Input.
Кажется, это может сработать, но это очень НЕ СУХОЙ.Проблема заключается в том, что если я использую validator.validateInput
в десяти различных формах, которые используют этот компонент ввода имени, а затем в будущем я добавлю ввод «среднего имени» к вводу имени, тогда я должен вернуться и добавить дополнительный validator.validateInput
вызов везде, где я использовал компонент ввода имени.
Как лучше его расставить точки?