【发布时间】:2022-11-17 02:33:59
【问题描述】:
我对 Angular 应用程序的表单值进行了大量检查,我需要重构。
`
((this.dropdownSearchForm.get('name').value === undefined || this.dropdownSearchForm.get('name').value === null || this.dropdownSearchForm.get('name').value.length === 0) &&
(this.dropdownSearchForm.get('status').value === undefined || this.dropdownSearchForm.get('status').value === null || this.dropdownSearchForm.get('status').value.length === 0) &&
(this.dropdownSearchForm.get('address').value === undefined || this.dropdownSearchForm.get('address').value === null || this.dropdownSearchForm.get('address').value.length === 0) &&
(this.dropdownSearchForm.get('edu').value === undefined || this.dropdownSearchForm.get('edu').value === null || this.dropdownSearchForm.get('edu').value.length === 0) &&
(this.dropdownSearchForm.get('salary').value === undefined || this.dropdownSearchForm.get('salary').value === null || this.dropdownSearchForm.get('salary').value.length === 0));
`
我如何使用 Typescript utils 简化它以用最少的代码实现相同的结果?
注意:Angular forms touch 或 pristine 不起作用。因此,检查此逻辑以验证表单值。
我尝试检查类型,但由于某种原因它不起作用。
【问题讨论】:
-
“注意:Angular forms touch 或 pristine 不起作用。” - 你可以解释吗? Truthy / Falsy 值可能会有所帮助。 docs
-
任何时候您使用 HTML 表单控件时,除非有默认值,否则您都有可能不存在该值。简而言之,没有办法静态验证用户输入之类的东西,直到运行时才可能知道。话虽这么说,HTML 表单内置了验证器,我不是一个有角度的开发人员,但该代码对我来说看起来很糟糕。
标签: javascript angular typescript