Почему Angular form.value пусто, когда объект NgForm еще жив после уничтожения фактического NgForm? - PullRequest
0 голосов
/ 29 февраля 2020

Это сложное состояние, которое я заметил сегодня, когда создавал приложение 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 пуст.

Вот рисунок, демонстрирующий ошибку:

enter image description here

...