Проверка вложенных директив в angular 1.2.16

#javascript #jquery #angularjs #validation #angular-ngmodel

#javascript #jquery #angularjs #проверка #angular-ngmodel

Вопрос:

Предыстория:

Допустим, мне нужна директива, которая редактирует и проверяет текст. Для простоты мы рассмотрим значение единицы. Итак, я создаю директиву, которая привязывается к значению в модели.

В этом простом примере директива проверяет значение false, если входные данные не в форме [NUMBER][IDENTIFIER] или если значение любой из ее подчиненных директив проверяется на значение false.

Всякий раз, когда текст изменяется, директива разбивает его на две переменные. Шаблон директивы имеет две под-директивы, по одной для каждой из двух переменных. Каждая поддиректива связана с помощью ng-model. Каждая вспомогательная директива проверяет каждое значение по мере изменения входных данных. Например, если подчиненная директива [IDENTIFIER] ожидает ‘px’ или ‘in’, она проверяет значение false для любого другого значения. Если любая из двух подчиненных директив проверяет значение false, основная директива также проверяет значение false.

Я хочу использовать такой подход при разработке редакторов на основе ng-model для более сложных текстовых шаблонов, используя при этом преимущества существующих механизмов проверки в ng-model.

Вопросы:

Можете ли вы прочитать действительность дочерних элементов директивы как часть определения того, является ли модель допустимой?

Если ng-model принимает объект, а не строку, может ли проверка запускаться при возникновении каких-либо изменений в модели?

Ответ №1:

Я уточняю эти ответы, говоря, что я новичок в angular….

Первый вопрос. Да, я думаю, что если бы у вас была директива, которая добавляет валидатор в цепочку проверки, нет причин, по которым он не мог бы обойти своих дочерних элементов и проверить их достоверность. Родительскому элементу может потребоваться скрытый ввод для подключения ngModelController, к которому затем будут проверяться видимые дочерние элементы.

Второй вопрос. Конечно. То, что содержит модель, не имеет значения. Проверка будет выполнена, если содержимое модели будет изменено.