2017-05-04 8 views
2

角度アプリでng2-datepickerを使用していて、typescriptファイルから日付を更新したいとします。 HTMLテンプレートでng2-datepickerどのようにtypescriptコードから日付を変更するには?

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

それは瞬間のオブジェクトに結合されているので、私はこの(私は角溶液中の瞬間が含まれている)のようにそれを更新しようとしています:

this.selectedDate = this.moment(date); 

ここで、dateはjs Dateオブジェクトで、日付を設定します。これは、このthis.selectedDateがnullでなくても、コンポーネントを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

それは興味深いソリューションで、私はこのためにupvoteと今のためにそれを使用する、サンプルコードです。私はよりクリーンなソリューションを選択します。あなたのソリューションを次のように変更しました:dateModel.formatted = momentObj._i;私はディスプレイがこれのように優れていることを発見したからです。選択した日付が現在の月にある場合、選択した日付は、日付ピッカーが最初に開かれたときには表示されません。多くのありがとう – Sam

+0

実際に、私はdateModel.formatted = momentObj.format( "MM-DD-YYYY");一番うまくいく – Sam

関連する問題