Угловое 6: Невозможно прочитать свойство "сброс" неопределенного

61
5

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

enter image description here

Это мой метод:

  @ViewChild('editFrom')
editForm: NgForm;
constructor(
private route: ActivatedRoute,
private alertify: AlertifyService
) {}

ngOnInit() {

}
updateUser() {
console.log(this.user);
this.alertify.success('Profile Updated Successfully');
this.editForm.reset(this.user);
}
}

Эта форма HTML:

<form #editForm="ngForm" id="editForm" (ngSubmit)="updateUser()">
<h4>Description</h4>
<textarea name="introduction" rows="6" class="form-control" [(ngModel)]="user.introduction"></textarea>
<h4>Looking For</h4>
<textarea name="lookingFor" rows="6" class="form-control" [(ngModel)]="user.lookingFor"></textarea>
<h4>Interest </h4>
<textarea name="interests" rows="6" class="form-control" [(ngModel)]="user.interest"></textarea>
<h4>Location Details:</h4>
<div class="form-inline">
<label for="city">City:</label>
<input class="form-control" type="text" name="city" [(ngModel)]="user.city">
<label for="country">Country:</label>
<input class="form-control" type="text" name="country" [(ngModel)]="user.country">
</div>
</form>

спросил(а) 2018-10-27T19:21:00+03:00 2 года, 4 месяца назад
1
Решение
96

Проблема заключается в том, что вы использовали <form #editForm="ngForm" id="editForm" (ngSubmit)="updateUser()"> в HTML файле

Прибывая в файл.ts, вы используете @ViewChild('editFrom') и он должен быть @ViewChild('editForm')

ответил(а) 2018-10-27T19:26:00+03:00 2 года, 4 месяца назад
86

На самом деле я не думаю, что вам нужно использовать ViewChild чтобы editForm. Поскольку вы можете передать его как аргумент методу updateUser.

Передайте форму методу:

<form #editForm="ngForm" id="editForm" (ngSubmit)="updateUser(editForm)">

Затем получите его в методе updateUser:

updateUser(editForm) {
console.log(this.user);
this.alertify.success('Profile Updated Successfully');
editForm.reset(this.user);
}

ответил(а) 2018-10-27T19:31:00+03:00 2 года, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема