Angular 2:验证器、响应式表单、表单生成器和自定义 类

Angular 2 : Validators, ReactiveForms, FormBuilder and custom classes

假设你有这个 class

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

当你制作反应式表格时,你可以这样做

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

或者,第二种方式

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

我的问题来自第二种方式:当您使用第一种方式时,您可以像这样将 Validators 添加到您的控件中

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

但是对于第二种方式,如何将验证器添加到表单控件中?

尝试

let control = this.form.controls["username"];
let newValidators = Validators.compose([Validators.required, Validators.minLength(8), Validators.maxLength(255)])
control.setValidators(newValidators);
control.updateValueAndValidity();