ng2-datepicker如何从typescript代码更改日期?

时间:2017-05-04 10:07:28

标签: angularjs datepicker ng2-datepicker

我在我的角应用程序中使用ng2-datepicker,我想从打字稿文件更新日期。

在html模板中:

<ng2-datepicker [options]="optionsForMenuDate" [(ngModel)]="selectedDate" name="selectedDate"></ng2-datepicker>

它绑定到一个时刻对象,所以我试图像这样更新它(我在角度解决方案中包括了一下):

this.selectedDate = this.moment(date);

日期是我想要设置日期的js Date对象。这只是将组件设置为null,即使这个this.selectedDate也不为null。

console.log(this.selectedDate); // logs a moment object

关于如何实现这一目标的任何想法?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我按照以下方式开始工作。

您的代码存在问题,

[(ngModel)]="selectedDate"

此处,属性&#39; selectedDate&#39;应该是&#39; DateModel&#39;而不是当下的对象。 DateModel定义为,

import {DateModel} from "ng2-datepicker";

它有以下属性,

export declare class DateModel {
    day: string;
    month: string;
    year: string;
    formatted: string;
    momentObj: moment.Moment;
    constructor(obj?: IDateModel);
}

现在您需要设置 momentObj 格式化属性才能使其正常运行。

以下是示例代码

let dateModel:DateModel = new DateModel();
let momentObj = moment('05-11-1986', "MM-DD-YYYY");
dateModel.momentObj = momentObj;
dateModel.formatted = momentObj.format();
this.selectedDate = dateModel;

答案 1 :(得分:0)

您可以使用 setStartDate 更新,test.ts文件如下所示

import { Component, ViewChild, OnInit, ElementRef } from '@angular/core';
import { DaterangePickerComponent } from 'ng2-daterangepicker';

@Component({
  selector: 'test',
  templateUrl: './test.html',
  styleUrls: ['./test.css']
})
export class TestComponent implements OnInit {

 // @ViewChild(DaterangePickerComponent) this line is very important
  @ViewChild(DaterangePickerComponent)
  private picker: DaterangePickerComponent;

  constructor() { }

  ngOnInit() {}

  ngAfterViewInit(){

    // get previous day for start date
    let startDate = new Date();
    startDate.setDate(startDate.getDate() - 1);

    // get next day for start date
    let endDate = new Date();
    endDate.setDate(endDate.getDate() + 1);

    this.picker.datePicker.setStartDate(startDate);
    this.picker.datePicker.setEndDate(endDate);

  }

}

和html看起来像这样

<input type="text" class="form-control form-control2"  name="daterangeInput" daterangepicker [options]="options" />