Angular 2 webapp でリアクティブ フォームを使用していますが、日付を ngbDatepicker (ngbootstrap 1 alpha 6) に割り当てるのに問題があります。私のオブジェクトには、次のような日付オブジェクトがあります。
var myObject = {date: new Date(1, 9, 2016)};
私のリアクティブ形式では、次のように構成されています。
input.form-control(name='date', ngbDatepicker, #date="ngbDatepicker", placeholder='jj.mm.aaaa', formControlName='date', type="text")
そして、次のようにフォームにパッチを当てます。
this.form.patchValue({myObject: myObject});
問題はngbDatepicker
、次の構造で日付を取得することです。
{day: DD, month: MM, year: YYYY}
次の回避策を見つけました。
this.form.controls.myObject.controls.date.valueChanges
.map((value) => {
if(value) {
if (typeof value.getMonth === 'function') {
this.form.controls.myObject.patchValue({
date: {
day: value.getUTCDay(),
month: value.getUTCMonth(),
year: value.getUTCFullYear()
}
});
}
}
return value;
})
.subscribe((value) => {
});
そして、すべてが期待どおりに機能します (フォームにパッチが適用されるたびに日付が更新されます)。
私の質問は、はるかに短いソリューションで同じ結果を達成できるかということです。