У вас control.value объект?
можете показать как заполняется email_or_phone контрол?
import { Component, OnInit } from "@angular/core"; import { AbstractControl, FormBuilder, FormGroup } from '@angular/forms'; @Component({ selector: 'app-reactive-form-example', templateUrl: './reactive-form-example.component.html', styleUrls: ['./reactive-form-example.component.css'] }) export class ReactiveFormExampleComponent implements OnInit { myForm: FormGroup; constructor(private fb: FormBuilder) {} ngOnInit(): void { this.myForm = this.fb.group({ phone: ['', [ValidatePhone]] }); } saveForm(form: FormGroup) { console.log('Valid?', form.valid); // true or false console.log('Phone Number', form.value.phone); } } function ValidatePhone(control: AbstractControl): {[key: string]: any} | null { if (control.value && control.value.length != 10) { return { 'phoneNumberInvalid': true }; } return null; } Вот пример валидатора, control.value проверять подходит ли к номеру или мейлу и если нет то ретурнить ошибку
а... бля понял, короче в [] возьмите required и ваш валидатор
Не поможет. Там undefined)
это другой вопрос, щас пофиг какое там значение, валидатор не там стоит
Ну пофиг так пофиг) Да и пофиг что Validators.pattern существует. И вообще все пофиг)
дык всё равно баг в том что он синхронный валидатор добавил как асинхронный
как через патерн сделат чтоби 1 поля била эмаил или номер ?
хм...как я понимаю, а если дописать метод-валидатор EmailOrNumberValidator как асинхронный, и валидация будет работать?
konecno, custom Validator mozno sozdavat
Регулярным выражением
`^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$|^(\\+\\d{1,3}[- ]?)?\\d*$` да уже сделал :)
Вот и весь гемор)
Асинхронный это, к примеру, делать запрос на бек и проверять значение. Типа ввел е-мейл, оно сделало запрос и сразу сказало "такой е-мейл не зарегистрирован"
Обсуждают сегодня