Angular 2: валидаторы, ReactiveForms, FormBuilder и пользовательские классы

Допустим, у вас есть этот класс

export class User {
    username = '';
    password = '';
}

Когда вы делаете реактивную форму, вы можете сделать это так

this.userForm = this.fb.group({
    username: ''
    password: ''
});

Или второй способ

this.userForm = this.fb.group(new User());

Моя проблема связана со вторым способом: когда вы используете первый способ, вы можете добавить валидаторы к своим элементам управления, как это

username: ['', Validators.required],
password: ['', Validators.required]

Но со вторым способом: как добавить валидаторы в элементы управления формы?


person Community    schedule 05.07.2017    source источник


Ответы (1)


Пытаться

let control = this.form.controls["username"];
let newValidators = Validators.compose([Validators.required, Validators.minLength(8), Validators.maxLength(255)])
control.setValidators(newValidators);
control.updateValueAndValidity();
person A. Tim    schedule 05.07.2017
comment
Я просто заглушил это (ну почти это) через this.userForm.get('username').setValidators([Validators.required]) секунд после публикации этого ахах. В любом случае, он очень близок к тому, что я использовал, поэтому отмечу ваш ответ как принятый, спасибо! - person ; 05.07.2017
comment
(Хорошо, я приму это через 9 минут, SOF не в порядке) - person ; 05.07.2017