Формы¶
Манипуляция формами (Angular forms) осуществляется мощными и продуманными инструментами библиотеки @angular/forms
.
С точки зрения Angular различают формы:
- Стандартные (Template-driven);
- Реактивные (Reactive).
Данная глава посвящена рассмотрению стандартных форм, реактивные рассмотрены отдельно.
Для создания Angular форм импортируйте FormsModule
из @angular/forms
.
Не забудьте добавить FormsModule
в корневой модуль.
Начнем с создания обычной HTML-формы логина.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Для работы со значениями полей Angular формы создадим в классе компонента свойство loginForm
, которое является отображением модели формы.
1 2 3 4 |
|
Чтобы связать объект loginForm
с соответствующими полями, используется директива [(ngModel)]
.
1 2 3 4 5 6 7 |
|
Запись вида [()]
является комбинированием двух механизмов передачи данных в Angular, каждый из которых работает только в одностороннем режиме. []
— это передача данных из переменной в поле (свойство @Input()
), ()
— из поля в переменную (свойство @Output()
).
Так для задания полю "Логин" значения по умолчанию, переменная loginForm
должна быть определена следующим образом:
1 2 3 4 |
|
Чтобы убедиться, что данные передаются и из Angular формы в обратную сторону, создадим метод printForm()
, который будет выводить значение в консоль.
1 2 3 |
|
Теперь соединим все описанное выше в одно.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Заполнив поля Angular формы, нажмите кнопку "Войти" и проверьте консоль, чтобы убедиться, что данные успешно были переданы в класс компонента.
Валидация форм рассмотрена отдельно.