Alle meine reaktiven Formen umfassen in der Regel Eigenschaften und Methoden:Wie vermeidet man Doppelungen von Code in den Formularen 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);
}
}
ich sie in der abstrakten Klasse ausgewählt
export abstract class BaseReactiveForm {..}
Und erben
@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();
}
...}
Stimmt es, dass Entscheidung?
Wie das Richtige zu tun? Was sind die Formen der Praxis?