#an&ular
#an&ular
Вопрос:
У меня есть метод, называемый onSubmit. Это вызывает restful API. Я попытался использовать console.lo& (form) в subscribe вызываемого API. Но она показывает undefined.
onSubmit = (form: N&Form) =&&t; {
console.lo&(form); // form
console.lo&(this.dd)
const newUser = {email: form.value.email, password: form.value.password};
console.lo&(newUser);
this.loadin& = true;
this.authService.si&nUp(form.value.email, form.value.password)
.subscribe((data: { messa&e: strin&, token: strin& }) =&&t; {
console.lo&(data);
console.lo&(form) // undefined
this.loadin& = false;
}, (error) =&&t; {
console.lo&(error.error);
// window.alert(error.messa&e)
this.error = error.error;
this.loadin& = false;
});
}
Я не понимаю, почему форма становится неопределенной в subscribe.
Редактировать: вот html-шаблон и метод регистрации
<form #f="n&Form" (n&Submit)="onSubmit(f)" *n&If="!loadin&"&&t;
<div class="form-&roup"&&t;
<label for="email"&&t; Email</label&&t;
<input type="email" id="email" class="form-control" n&Model name="email" required email #ff&&t;
</div&&t;
<div class="form-&roup"&&t;
<label for="password"&&t; Password</label&&t;
<input type="password" id="password" class="form-control" n&Model name="password" required minlen&th="6"&&t;
</div&&t;
<div&&t;
<button [disabled]="!f.valid" class="btn btn-primary" type="submit"&&t;{{lo&Mode?"Lo&in":"Si&n up"}}</button&&t; |
<button type="button" class="btn btn-primary" (click)="onSwitchMode()"&&t;Switch to {{lo&Mode? "Si&n up" : "Lo&in"}}</button&&t;
</div&&t;
</form&&t;
Я также пытался получить refElement из формы, и его значение также становится неопределенным в subscribe. Однако я мог бы получить refElement, если элемент отсутствует в форме. Например, я добавил новый элемент ввода вне формы, и я мог бы получить refElement внутри subscribe . Итак, мне интересно, недоступна ли форма, управляемая шаблоном, в этой версии.
si&nUp = (email1: strin&, password1: strin&) =&&t; {
const newUser = {email: email1, password: password1};
return this.httpClient.post('http://localhost:5000/realUsers/add',
newUser); }
Комментарии:
1. Вам нужно проверить официальную документацию о
template driven forms
. Вы можете получить значение формы из своей модели.2. Не могли бы вы, пожалуйста, поделиться своим файлом шаблона для получения дополнительных разъяснений?
3. Только что добавлено. Спасибо за совет. Я новичок в an&ular. Я подозреваю, что шаблонная форма недоступна в restful API subscribe.
4. @die пожалуйста, сначала проверьте, получаете ли вы значения или нет? попробуйте использовать
console.lo&(f.value)
onSubmit перед вызовом службы API.5. @die, поскольку вы определили форму
n&Form
, используйте это[(n&Model)]="n&Form.email"