Wszystkie moje reaktywnych form zazwyczaj zawierają właściwości i metody:Jak uniknąć duplikowania kodu w formularzach Angular 2?
@Input()
public form: FormGroup;
public messages = VALIDATION_MESSAGES;
@Output()
public onFormSubmit: EventEmitter<any> = new EventEmitter();
@Input()
public formData;
@Input()
public controlsConfig: any;
protected abstract fb: FormBuilder;
isValidControl(controlName: string): boolean {
const control = this.form.controls[controlName];
return control.valid || control.pristine;
}
onSubmit(): void {
const form = this.form;
if(form.valid) {
this.onFormSubmit.emit(form.value);
}
}
Wybrałem je w abstrakcyjnej klasie
export abstract class BaseReactiveForm {..}
I dziedziczą
@Component({
selector: 'app-login-form',
templateUrl: './login-form.component.html',
styleUrls: ['./login-form.component.css']
})
export class LoginFormComponent extends BaseReactiveForm implements OnInit {
constructor(protected fb: FormBuilder) {
super();
}
...}
Czy to prawda, że decyzja?
Jak postępować właściwie? jakie są formy praktyki?