如何在主要组件中设置NgbDatePicker的minDate / maxDate以使用所有页面中的设置?

时间:2018-07-05 04:13:18

标签: angular ng-bootstrap

在我的angular 4中,我正在使用Ng-bootstrap(v1.1.0),在多个模块下有多个日期选择器。我想在所有位置设置maxDate配置。我的文件夹结构如下。

public.module.ts
public.component.ts

---- first.module.ts
---- first.component.ts
-------------- first-sub.component.ts
..............................
..............................

---- second.module.ts
----second.component.ts
-------second-sub.component.ts
..............................
..............................

我尝试如下在public.component.ts中初始化NgbDatepickerConfig

    constructor(config: NgbDatepickerConfig) {
          config.maxDate = { "year": 2018, "month": 7, "day": 4} ;
    }

我正在使用以下代码显示日历

<input type="text" id="selectDate" class="form-control" placeholder="{{'DATE_OF_INCIDENT' | translate}}" formControlName="selectDate"
                                        ngbDatepicker #selectedDate="ngbDatepicker" readonly>

您能否建议一种方法,以便我们可以在一个位置配置日期设置,并可以在所有使用Ngb DatePicker的位置使用

2 个答案:

答案 0 :(得分:1)

对我来说,它的工作方式如文档所述:

            <input class="form-control" type="text" formControlName="birthDate" placeholder="Date of Birth"
                     id="inputDateOfBirth" name="dp" ngbDatepicker #d="ngbDatepicker"
                     [minDate]="{year: 1900, month: 1, day: 1}">

文档:https://ng-bootstrap.github.io/#/components/datepicker/overview#limiting-dates

答案 1 :(得分:1)

必须使用NgbModule和FormsModule

this.minDate = { year: 1985, month: 1, day: 1 };
this.maxDate={year:new Date().getFullYear(),month: 1, day: 1}
this.startDate = { year: 1988, month: 1, day: 1 };
 <input class="form-control" placeholder="yyyy-mm-dd" placement="top-left" 
     [minDate]="minDate" [maxDate]="maxDate" [startDate]="startDate" name="dateOfBirth" 
     id="dateOfBirth" [(ngModel)]="dateOfBirth" ngbDatepicker #d="ngbDatepicker" 
     (click)="d.toggle()">