【发布时间】:2017-10-27 15:20:52
【问题描述】:
所以,我使用的是 ng-bootstrap DatePicker,并且有两种形式,startDate 和 endDate 我需要能够用这个做两件事:
- 在渲染“创建页面”时,将今天的日期放在 startDate 上,如果渲染“编辑页面”,则从后端输入日期..
- 选择startDate时,触发minDate属性为选择的startDate
这就是我正在尝试做的事情(现在使用硬编码,而不是从后端获取数据)
export class ProgramFormComponent {
startDate: NgbDateStruct;
endDate: NgbDateStruct;
minEndDate: NgbDateStruct;
programInput = {
'viewType' : 'Create',
'programTitle' : '',
'programDescription' : '',
'programOwner' : [
''
],
'changepointID' : '',
'startDate' : this.startDate,
'endDate' : this.endDate,
'minDate' : this.minEndDate
}
programInputEdit = {
'viewType' : 'Edit',
'programTitle' : 'Test Title',
'programDescription' : 'Test Description',
'programOwner' : [
'Test Owner 1',
'Test Owner 2',
'Test Owner 3',
],
'changepointID' : 'ID',
'startDate' : this.startDate,
'endDate' : this.endDate,
'minDate' : this.minEndDate
}
constructor(private modalService: NgbModal) {
if (this.programInput['viewType'] === 'Create') {
this.selectToday();
} else {
this.startDate = {year: 2017, month: 7, day: 1};
this.endDate = {year: 2017, month: 12, day: 2};
}
}
open(content) {
this.modalService.open(content, { windowClass: 'dark-modal' });
}
selectToday() {
this.startDate = {year: now.getFullYear(), month: now.getMonth() + 1, day: now.getDate()};
}
limitEndDate() {
this.minEndDate = this.startDate;
}
<form>
<div class="form-group">
<label for="startDate" class="control-label">Start Date</label>
<div class="input-group">
<input class="form-control" placeholder="yyyy-mm-dd"
name="startDate" [(ngModel)]="programInput.startDate" ngbDatepicker #s="ngbDatepicker" firstDayOfTheWeek=1 [startDate]="programInput.startDate">
<div class="input-group-addon" (click)="s.toggle()" >
<i class="fa fa-calendar" aria-hidden="true"></i>
</div>
</div>
</div>
<div class="form-group">
<label for="startDate" class="control-label">End Date</label>
<div class="input-group">
<input class="form-control" placeholder="yyyy-mm-dd"
name="startDate" [(ngModel)]="programInput.endDate" ngbDatepicker #e="ngbDatepicker" [minDate]="programInput.minEndDate">
<div class="input-group-addon" (click)="e.toggle()" >
<i class="fa fa-calendar" aria-hidden="true"></i>
</div>
</div>
</div>
</form>
另外,如果有人知道怎么做,我希望日历的弹出显示在页面顶部的方向上,而不是底部...没有找到任何属性来设置这个。
【问题讨论】:
标签: angular datepicker angular2-template