我正在尝试过滤基于年和月的表。
我想我的日期只有年和月,我想在我的文本框以及默认日期,做搜索之前。
在搜索时,我会将值修补到一个文本框中,同时尝试将我的日期与年和月转换为ISOString。
然而,在执行以下代码时,我收到一个空对象:
this.Date = new Date();
this.Date.setMonth(this.Date.getMonth() - 10);
//init
this.form.get('Date').patchValue(this.Date);
//passing to isostring for api call
this.Date= new Date(this.form.get('Date').value).toISOString();
result
TypeError: Cannot convert undefined or null to object
我做错了什么?
代码中的一个问题可能是您试图在窗体控件初始化之前将日期值修补到窗体控件中。patchValue方法只对现有的窗体控件有效,对空值无效。
要解决此问题,可以在修补新值之前使用默认日期值初始化表单控件,如下所示:
this.Date = new Date();
this.Date.setMonth(this.Date.getMonth() - 10);
//init form control with default date value
this.form.get('Date').patchValue(this.Date);
//patch new value into form control
this.form.get('Date').patchValue(new Date());
//passing to isostring for API call
this.Date= new Date(this.form.get('Date').value).toISOString();