2017-05-04 56 views
2

我在我的角度應用程序中使用ng2-datepicker,我想從打字稿文件更新日期。ng2-datepicker如何更改打字稿代碼的日期?

在HTML模板:

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

它綁定到一個時刻的對象,所以我嘗試更新它像這樣(我已經包括在角度解決目前):

this.selectedDate = this.moment(date); 

其中date是我想要設置日期的js Date對象。這只是將組件設置爲null,即使這this.selectedDate不爲null。

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

有關如何實現此目的的任何想法?

回答

1

我遇到了同樣的問題,我按照以下方式工作。

與您的代碼的問題是低於線,

[(ngModel)]="selectedDate" 

這裏,財產「selectedDate」應該是類型「DateModel」,而不是一時的對象。該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; 
+0

這是一個有趣的解決方案,我會給予好評,這和使用它的現在。我將選擇更清潔的解決方案。我將您的解決方案更改爲:dateModel.formatted = momentObj._i;因爲我發現顯示器更像這樣。如果選擇的日期在當前月份,則日期選擇器第一次打開時不顯示所選日期。非常感謝 – Sam

+0

實際上,我發現dateModel.formatted = momentObj.format(「MM-DD-YYYY」);努力工作最好 – Sam