Я новичок в AngularJS, и теперь я работаю над довольно сложной формой, которая выглядит так, как если бы я мог воспользоваться опцией ngModelOptions { allowInvalid: true }
.
Я полагаю, что есть веская причина, по которой поведение по умолчанию в AngularJS - это сбить значение модели, если недопустимое значение представления недопустимо. Сначала я предполагаю, что недопустимое значение не передается серверу, когда пользователь отправляет данные.
Поэтому я думаю, что мои вопросы
Вы не теряете никаких угловых функций, кроме, конечно, предотвращения недопустимых значений, установленных на модели.
Элемент управления моделью по-прежнему отмечен как недействительный, его просто так, что вместо того, чтобы установить значение в undefined, это позволит установить недопустимое значение в модели.
Одна вещь, на которую следует обратить внимание при использовании этого флага, - это все, что смотрит на значение модели. Так как обычно недопустимое поле не запускает события $ watch после того, как этот флаг установлен, вы можете передавать плохие значения другим директивам или функциям.
AllowInvalid может быть полезен в ситуациях, когда вы хотите что-то сделать с недопустимым значением. Хорошим примером может быть создание директивы отображения силы пароля. Если вы не разрешаете пароли под словами "7 символов", вы не знаете, что пользователь печатает до получения 8-го символа, поэтому вы не сможете дать отзыв.
Использование AllowInvalid не указывает поле как действительное, поэтому вы все равно можете использовать form.password. $ Invalid для отображения сообщений об ошибках.
Перед отправкой вы можете проверить, действительно ли поле или даже более общая форма действительны до передачи данных.