为什么在组件/表单中完成角度验证一次都没有在域模型上完成?



我从Grails背景来到Angular,在那里你可以针对领域模型在一个地方定义你的业务规则验证。嘎嘎....因此,当我通过Ionic来到Angular时,我很惊讶没有看到熟悉的东西。我在这里错过了什么吗?有没有更好的方法?

您可以在任何情况下实现验证。只需在角度形式和您的域之间再添加 1 层即可。 一般来说,Angular 不会规定你的应用程序应该以什么方式工作。它只是为您提供与浏览器和 API 交互的工具。

您始终可以通过反应式表单实现Domain#valid()方法并更新字段。

@Component({})
export class MyComponent implements OnInit{
public form: Form = this.fb.group({
fName: ['', []],
lName: ['', []]
});
constructor(fb: FormBuilder){}
ngOnInit(){
this.form.valueChanges.subscribe((form) => {
let entity: Entity = new Entity(form);
let errors: ValidationErrors = entity.valid();
if(errors.length){
this.form.setErrors(errors);
this.form.updateValueAndValidity();
}
});
}
}

最新更新