Angular ngbDatepicker设置值
在我的角度应用程序模板驱动表单中,我有一个出生日期字段,并为该字段添加了ngbDatepicker,如下所示Angular ngbDatepicker设置值,angular,angular6,ngb-datepicker,angular-template-form,Angular,Angular6,Ngb Datepicker,Angular Template Form,在我的角度应用程序模板驱动表单中,我有一个出生日期字段,并为该字段添加了ngbDatepicker,如下所示 <input #dob="ngbDatepicker" (click)="dob.toggle()" [(ngModel)]="model.dob" [ngClass]="{ 'is-invalid': f.submitted && dob.invalid }"
<input #dob="ngbDatepicker"
(click)="dob.toggle()"
[(ngModel)]="model.dob"
[ngClass]="{ 'is-invalid': f.submitted && dob.invalid }"
class="form-control"
id="dob"
name="dob"
required
type="text"
[disabled]="isDisabled"
[class.ash]="isDisabled"
[class.highlight]="!isDisabled"
ngbDatepicker
/>
因为ngbDatepicker以该格式获取值。这就是我试图转换出生日期的原因
toDate(dob) {
const [year, month, day] = dob.split('-');
const obj = { year: year, month: month, day: day.split(' ')[0].trim() };
console.log('convert date', obj);
this.model.dob = obj;
// this.model.dob ={year: 2017, month: 5, day: 13};
}
输出是{year:“2019”,month:“02”,day:“16”}
,我想从这个输出中删除引号。我尝试了很多方法,但都无法获得所需的输出。
我可以使用下面的代码得到{“年”:2019,“月”:02,“日”:16}
这个输出
JSON.stringify({ "year": "2019", "month": "2", "day": "26" }, (key, value) => !isNaN(+value) ? +value : value);
但要设置日期,我需要像这样设置对象<代码>{年份:2019,月份:2,日期:26}我可以使用“parseInt”解决我的问题。使用此项了解有关parseInt的更多信息。我更改了下面给出的代码
toDate(dob) {
if (dob) {
const [year, month, day] = dob.split('-');
const obj = { year: parseInt(year), month: parseInt(month), day:
parseInt(day.split(' ')[0].trim()) };
this.model.dob = obj;
}
}
你可以这样写
[startDate]=“{year:From API dob.getYear(),month:From API dob.getMonth()}”我这样做解决了我的问题 通过创建NgbDate实例
date = new NgbDate(2020,19,02);
将此日期作为ngModel 通过添加以下import语句,您可以获得NgbDatePicker输入,以从/到[(ngModel)]=“model.dob”读取/写入Angular 9中的Javascript日期:
import { NgbDate, NgbDateStruct, NgbDateAdapter, NgbDateNativeAdapter } from '@ng-bootstrap/ng-bootstrap';
providers: [
{ provide: NgbDateAdapter, useClass: NgbDateNativeAdapter }]
并在@Component语句中声明NgbDateAdapter提供程序:
import { NgbDate, NgbDateStruct, NgbDateAdapter, NgbDateNativeAdapter } from '@ng-bootstrap/ng-bootstrap';
providers: [
{ provide: NgbDateAdapter, useClass: NgbDateNativeAdapter }]
我尝试用
{year:2020,month:10,day:30}
格式设置值,它对我有效。
请注意日期的值,如果该月不存在该日期,则该值将不会显示给NgbDateAdapter选择器。
我遵循中的解决方案,由于一些原因,我无法使用此解决方案。当我从API中获得一天时,它附带了空间和00:00:00。同样,我也需要输入字段。是的,它工作正常,返回一个对象,每个部分都有日期。