это не функция - Angular 5 - PullRequest
       2

это не функция - Angular 5

0 голосов
/ 13 декабря 2018

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

ОШИБКА TypeError: this.nextForm не является функцией

Мой typescript код следующий:

onNavigate(direction) {
    // Fetch all the forms we want to apply custom Bootstrap validation styles to
    var forms = document.getElementsByClassName("needs-validation");
    // Loop over them and prevent submission
    var validation = Array.prototype.filter.call(forms, function(form) {
      form.addEventListener(
        "submit",
        function(event) {
          //Forward
          if (direction == "forward") {
            //Not correct
            if (form.checkValidity() === false) {
              event.preventDefault();
              event.stopPropagation();
              form.classList.add("was-validated");
            }
            //Corect
            else {
              form.classList.add("was-validated");
              this.nextForm();
            }
          }
        },
        false
      );
    });
  }

  nextForm() {
    this.router.navigate(["/id-application/welcome"]);
  }

1 Ответ

0 голосов
/ 13 декабря 2018

Используйте функции стрелок вместо functions.

  var validation = Array.prototype.filter.call(forms,(form)=> { // use arrow function
      form.addEventListener(
        "submit",
        (event) => { // use arrow function
          //Forward
          if (direction == "forward") {
            //Not correct
            if (form.checkValidity() === false) {
              event.preventDefault();
              event.stopPropagation();
              form.classList.add("was-validated");
            }
            //Corect
            else {
              form.classList.add("was-validated");
              this.nextForm();
            }
          }
        },
        false
      );
    });
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...