Почему не работает валидатор в Angular 5

189
27 марта 2018, 03:13

Есть попытка создания собственного валидатора для формы в Angular 5 :

form: FormGroup; 
ngOnInit() {
  this.form = this.fb.group({
    username: ['', [Validators.required, Validators.minLength(5)]],
    password: ['', [Validators.required, Validators.minLength(5)]],
    dpassword: ['', [Validators.required, this.validateMatchPasswords.bind(this)]],
    email: ['', [Validators.required, Validators.email]]
  });
}
validateMatchPasswords(control: FormControl) {
  return {
    error: this.form.get('password') === this.form.get('dpassword')
  };
}

Идея в том что валидатор должен проверять при регитрации, что основное поле пароля и его повторение одинаковые. Но почему-то падает ошибка что не может найти метод get() у объекта this.form и вообще this.form получается undefined, хотя я сделал this.validateMatchPasswords.bind(this).

ERROR TypeError: Cannot read property 'get' of undefined
    at RegistrationComponent.validateMatchPasswords (registration.component.ts:32)
    at eval (forms.js:759)
    at Array.map (<anonymous>)
    at _executeValidators (forms.js:759)
    at FormControl.eval [as validator] (forms.js:711)
    at FormControl.AbstractControl._runValidator (forms.js:3433)
    at FormControl.AbstractControl.updateValueAndValidity (forms.js:3387)
    at new FormControl (forms.js:3905)
    at FormBuilder.control (forms.js:7899)
    at FormBuilder._createControl (forms.js:7965)

Подскажите пожалуйста, почему так происходит, и как это можно поправить?

READ ALSO
Изменяющий фон при скроллинге

Изменяющий фон при скроллинге

Здрасвуйте! Есть хедер, который имеет прозрачный фонКак только пользователь начинает скролить страницу вниз - хедеру даётся цвет:

340
Как оформить такой код через класс?

Как оформить такой код через класс?

Интересует именно функция wrapChain, сделал что-то похожее но не робит

199
Сортировка массива с объектами js

Сортировка массива с объектами js

Здравствуйте, мне по API приходит массив с объектами, в каждом объекте есть ключ priceНужно сделать фильтрацию по убыванию и возрастанию цены

220
Как перенести функции на сервер JS

Как перенести функции на сервер JS

Приветствую всехВозникла задача скрыть js код на сайте

176