У меня есть следующая форма html в angular
<form (ngSubmit) = "signin()" #signinform = "ngForm">
<div class = "form-group row">
<label for = "signinemail" class = "col-sm-2 col-form-label">Email:</label>
<div class = "col-sm-10">
<input type = "email"
class = "form-control"
id = "signinemail"
name = "signinemail"
ngModel
placeholder = "Email">
</div>
</div>
<div class = "form-group row">
<label for = "signinpassword" class = "col-sm-2 col-form-label">Password:</label>
<div class = "col-sm-10">
<input type = "password"
class = "form-control"
id = "signinpassword"
name = "signinpassword"
ngModel
placeholder = "Password">
</div>
</div>
<div class = "form-group">
<div class = "form-check">
<input class = "form-check-input ml-0"
type = "checkbox"
id = "gridCheck"
name = "remembercheckbox"
ngModel>
<label class = "form-check-label" for = "gridCheck">
Remember Me
</label>
</div>
<small class = "form-text text-muted">Forget Password?</small>
</div>
<div class = "modal-footer">
<button type = "submit" class = "btn btn-primary">Sign In</button>
<button type = "button" class = "btn btn-outline-dark" (click) = "c('Close click')">Close</button>
</div>
</form>
и следующий машинописный текст для формы:
import {NgForm} from "@angular/forms";
@ViewChild('signinform') signinform: NgForm;
signin() {
let payload = {
email: this.signinform.form.value.signinemail,
password: this.signinform.form.value.signinpassword,
localstorage: this.signinform.form.value.remembercheckbox
};
this.userservice.gettoken(payload);
this.signedin = true;
}
Я сравнил это с другими формами, которые я построил, и все же нет никакой разницы. Что может быть причиной этого?
когда я звоню, элемент формы находится на домике. Кнопка отправки находится внутри формы. Синтаксис элемента @ViewChild правильный и правильно импортирован. Я правда не понимаю и готов ударить ребенка.






Код выглядит нормально ... Вы можете просто попробовать не использовать дочерний вид представления, а вместо этого сделать:
<form (ngSubmit) = "signin(signinform)" #signinform = "ngForm">
signin(form: NgForm) {
console.info(form);
}
Я бы определенно попробовал эту консоль, чтобы убедиться, что форма отправляется правильно.
Отсюда ваш код выглядит нормально. Единственным критерием для работы дочернего представления является то, что элемент должен находиться в представлении. Значит, это не может быть, например, в * ngIf. Кроме этого, я не могу придумать ни одной причины, по которой это не сработало бы. Я сделал то, что вы сделали миллион раз, лол ... Может быть, это просто случайность с угловатым лол
это сработало. Не знаю, почему это сработало. Но это сработало. WTF .... Вы можете объяснить, почему это могло сработать с viewchild? это 9 минут, пока я не смогу принять ваш ответ