Angular验证是在组件/表单中进行的,而不是在域模型上执行一次的原因有以下几点:
- 分离关注点:Angular采用了分离关注点的设计原则,将验证逻辑从域模型中分离出来,使得组件/表单可以专注于用户界面的交互和展示,而不需要关心具体的验证规则和逻辑。这样可以提高代码的可维护性和可测试性。
- 前端实时验证:在用户界面上进行验证可以实时地提供反馈和提示,使得用户能够及时发现并修正输入错误。如果将验证放在域模型上执行一次,用户需要等到提交表单或保存数据时才能得到验证结果,这样会增加用户的等待时间和不便。
- 表单级别验证:组件/表单中的验证是针对具体的用户界面交互进行的,可以根据不同的表单需求和交互逻辑进行灵活的验证配置。而域模型上的验证通常是通用的、全局的验证规则,无法满足不同表单的特定需求。
- 安全性考虑:将验证逻辑放在前端进行可以提高系统的安全性。域模型通常包含敏感数据和业务规则,将验证逻辑暴露在前端可能会导致安全风险。通过在前端进行验证,可以避免将敏感数据传输到前端,并且可以在前端进行一些基本的验证,减轻后端的负担。
总结起来,Angular将验证放在组件/表单中进行,可以提高代码的可维护性和可测试性,实时提供反馈和提示,满足不同表单的特定需求,提高系统的安全性。