Не удается прочитать свойство 'form' неопределенного углового 5

У меня есть следующая форма 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">
            &nbsp; &nbsp; 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 правильный и правильно импортирован. Я правда не понимаю и готов ударить ребенка.

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
5 841
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Код выглядит нормально ... Вы можете просто попробовать не использовать дочерний вид представления, а вместо этого сделать:

<form (ngSubmit) = "signin(signinform)" #signinform = "ngForm">

  signin(form: NgForm) {
    console.info(form);
  }

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

это сработало. Не знаю, почему это сработало. Но это сработало. WTF .... Вы можете объяснить, почему это могло сработать с viewchild? это 9 минут, пока я не смогу принять ваш ответ

user9487981 18.05.2018 20:31

Отсюда ваш код выглядит нормально. Единственным критерием для работы дочернего представления является то, что элемент должен находиться в представлении. Значит, это не может быть, например, в * ngIf. Кроме этого, я не могу придумать ни одной причины, по которой это не сработало бы. Я сделал то, что вы сделали миллион раз, лол ... Может быть, это просто случайность с угловатым лол

David Anthony Acosta 18.05.2018 20:33

Другие вопросы по теме