Sni*_*rya 8 momentjs angular-moment angular-material angular angular7
因此,我使用的是 Angular 材质日期选择器,它只能帮助我选择月份和年份。 https://material.angular.io/components/datepicker/overview#watching-the-views-for-changes-on-selected-years-and-months
但是,除非您执行以下操作,否则该功能不会按预期工作 - date = new FormControl(moment()); (除了月份和年份之外,您还可以选择日期。)
现在,我们知道 moment() 只返回当前日期和时间。我的主要目标是在应用程序的表单中显示现有用户详细信息。但是,用户可以在加载表单后对其进行编辑。这些字段之一是材料日期选择器。现在,它不是必填字段,所以我并不总是从后端收到有效的响应。当响应是日期时,绝对没有问题。但是每当我收到一个空值时,就会出现主要问题。
我查看了 Moment.js 文档(https://momentjs.com/docs/),它明确指出 moment(null) 和 moment("") 都是无效日期。因此,一旦我使用两者中的任何一个来初始化日期选择器,日期选择器就根本不允许我在可编辑模式下选择日期。
如何使用不会干扰日期选择器功能的 moment() 设置有效的空日期?
我们在项目中遇到了同样的问题,我们通过为日期选择器的值添加三元条件来修复它。const dateValue = value ? moment(value) : null;如果该值存在,我们将根据它创建一个 moment 对象,如果不存在,它应该为 null。
如果您使用moment适配器和时刻日期,则应将组件的日期变量设置为null,而不是moment(null)。在内部,日期选择器将询问适配器日期是否有效,但moment(null).isValid()会返回false,从而触发解析验证器,该验证器将返回错误。
| 归档时间: |
|
| 查看次数: |
9499 次 |
| 最近记录: |