类型化的表单很棒,但我想知道如何在最初显示类型为‘Numbers’的表单控件为空输入字段.我希望将我的控件保持为在我的表单中需要的非Null,但它排除了使用Null作为初始值,这在以前是一种解决方案.

编辑: 也许我来描述一下我的情况. 我有几个类型为Numbers的FormControl.我想首先将这些输入显示为空.因此,可能的解决方案是将FormControl构造函数中的初始值设置为空.但FormControl的类型为<Number|NULL>.所有这些都是必需的.提交后,我需要将数据发送到服务器,并将FormControl<number|NULL&>值赋给类型number的属性,这使我可以 for each 属性添加显式强制转换,即使我知道提交后它们不能为空,因为有‘Required’验证器.I FormControl<string>类型转换不是必需的,我可以通过提供""作为初始值来显示空输入.我想知道有没有什么办法可以解决Numbers的问题.

推荐答案

所需的验证器不允许输入为空值.它只是将误差加到FormControl上,但该值仍然可以为空.因此,<number | null><number>更有意义.当验证通过时,此时您可以断言!(例如form.controls.name.value!)的值不为空.但也许您实际上应该使用<string>类型(并传递空字符串作为初始值),因为HTML输入不能有数值?如果将一个数值传递给<input type="number">,则该数字将在幕后转换为字符串.从表单中检索值时,值是字符串,而不是数字.

Angular相关问答推荐

angular:从模板中的可观察数组获取随机元素

当try 使用Angular和PrimeNg手动聚焦输入时,我做错了什么?

Angular 类型的表单不能分配给分部类型

当嵌套在异步容器中时,S会阻止具有动态值的ionic 段工作吗?

ANGLE DI useFactory将参数传递给工厂函数

Angular :为什么我得到了一个可观察到的共鸣

有角.服务.模块构建失败.无法读取未定义的属性(读取文件)

在Angular中扩展多个类

RxJs 中的空闲可观察对象在幕后做了什么?

如何在 Angular 中创建通用的可重用组件

可观察的等待直到另一个可观察的值

Rxjs Observable:仅为第一个订阅者获取 HTTP 数据,为其余订阅者获取缓存数据

Angular 2+ 一次性绑定

Angular 5 中服务的生命周期是什么

由router-outlet 创建时如何将css类应用于组件元素?

Angular 2 单元测试 - @ViewChild 未定义

Angular2 Base64 清理不安全的 URL 值

ConnectionBackend 没有提供程序

CustomPipe 没有提供者

如何使用 Angular CLI 删除包?