2017-07-26 12 views
3

2つの日付フィールド、開始日は&、終了日は2つ使用するコンポーネントがあります。Angular2 - 反応形式の日付フィールドの設定

デフォルトでは、終了日フィールドが無効になっており、開始日を選択するとその項目が切り替わります。

this.transitionForm = this.fb.group({ 
effectiveEndDate: [{ value: '', disabled: true }] 
..... 
}); 

私はコード内にこの終了日フィールドの値を設定しようとしています。

this.transitionForm.controls['effectiveEndDate'].setValue(this.utils.currentDate()); 

ユーティリティ機能:

/** 
* Returns the current date 
*/ 
currentDate() { 
    const currentDate = new Date(); 
    const day = currentDate.getDate(); 
    const month = currentDate.getMonth() + 1; 
    const year = currentDate.getFullYear(); 
    return month + "/" + day + "/" + year; 
} 

HTML:

<input type="date" class="form-control input-sm" id="effectiveEndDate" name="effectiveEndDate" placeholder="Required" formControlName="effectiveEndDate"> 

何らかの理由で、フィールドはいえ更新取得されません。

PatchValueも使用しようとしていて、それも設定していませんでした。

私には何が欠けていますか?

+0

最終的にそこにいました。私のバージョンはPlunkerでも使えました。 – JGFMK

答えて

2

あなたは(他のブラウザでテストされていません)Chromeでこのコードを実行すると、それはコンソールにエラーを記録します:

指定された値 " 7/26/2017 "が必要なフォーマット" yyyy-MM-dd "に準拠していません。この解決んが

currentDate() { 
    const currentDate = new Date(); 
    return currentDate.toISOString().substring(0,10); 
} 

Live plunker example

:私は問題がかなりよく

を説明あなたが何かにあなたのcurrentDate()方法を変更することにより、それを修正することができると思い

問題the answer from @JGFMKは、を使用して日付を変換するより良い方法を示しています3210

5

FormBuilder.groupはFormGroupを返す:
https://angular.io/api/forms/FormBuilder#group
https://angular.io/api/forms/FormGroup#setValue

アップデート:


import {DatePipe} from '@angular/common' 
... 
let dp = new DatePipe(navigator.language); 
let p = 'y-MM-dd'; // YYYY-MM-DD 
let dtr = dp.transform(new Date(), p); 
this.transitionForm.setValue({effectiveEndDate: dtr}); 

Plunker example (just hit reset)

+0

返信いただきありがとうございますが、それは動作しませんでした。日付フィールドは、デフォルトの凝視状態のままで、日付選択を促します。 – SBB

+0

@ 0mpurdy ???私は私の記事で議論したコードを参照してください.. src/app.tsにありますか?私は作成したUIを再利用しました...デモのためには...コアの問題に対する解決策と同じくらい盗まれていません。 – JGFMK

+0

@ JGFMK問題ありません!それはちょうどplunkerがまだ私のバージョンを表示していた - 私はあなたが変更を行った後に解凍を忘れているかもしれないと思った:)(それはおそらく私の部分にキャッシングの問題があったかもしれない - 私が使用した用語は、そのような意味ではありませんでした)私は私のコメント(とこれを)すぐに関連性がなくなり次第削除します - 良い一日を! – 0mpurdy

関連する問題