Это сложное состояние, которое я заметил сегодня, когда создавал приложение angular, но не могу понять, почему это происходит.
Я создал модал, который в основном представляет собой форму Angular в сочетании с ngЕсли показать или скрыть соответственно. Форма передается в другой компонент <<strong> app-input-dialog> , который использует ng-content для визуализации формы.
Шаблон основного компонента:
<!--Modal: Service Input-->
<app-input-dialog
*ngIf = "m_isServiceInput"
title = "Υπηρεσία"
(onClose)="m_isServiceInput=false"
>
<form (ngSubmit)="onServiceSubmit(serviceForm)" #serviceForm="ngForm">
<!--Name Input-->
<div class="form-group">
<input
type="text"
class="form-control"
placeholder="Όνομα"
name="name"
maxlength="20"
ngModel
required
>
</div>
<!--Price Input-->
<div class="form-group">
<input
type="number"
step="0.01"
class="form-control"
placeholder="Τιμή"
name="price"
ngModel
required
>
</div>
<!--Submit Button-->
<button
class="btn btn-primary"
type="submit"
[disabled]="serviceForm.form.status !== 'VALID'"
>
{{m_createButton}}
</button>
</form>
</app-input-dialog>
Код основного компонента:
onServiceSubmit(form: NgForm)
{
console.log(form);
}
Если вы отправите форму, а затем закроете модальный (* ngIf = false, <<strong> app-input-dialog > уничтожается) тогда объект формы все еще жив, но объект form.value пуст.
Вот рисунок, демонстрирующий ошибку: