Pikaday に基づいてform-component
、サブコンポーネントを含むthis を取得しました。datepicker
には、の値のform-component
オブザーバーがあります。datepicker
// form-component.hbs
{{date-picker value=model.dueDate}}
// form-component.js
testDueDate: function() {
console.log(this.get('model.dueDate'));
}.observes('model.dueDate');
// date-picker.js
testDatepickerValue: function() {
console.log(this.get('value'));
}.observes('value');
// Only triggers date-picker's observer, but not the one from form-component:
this.set('value', new Date());
手動で日付を選択すると (つまり、日付ピッカーを開いてマウスで任意の日付をクリックすると)、すべてが正常に機能しtestDueDate()
ますtestDatepickerValue()
。
しかし、プログラムで日付を設定すると (つまり、Pikalendar API を介して)、親コンポーネントのオブザーバーは起動しませんが、日付ピッカーのオブザーバーvalue
が変更されて表示されます。
Pikalendar のコードを見ると、日付をクリックする場合とプログラムで日付を設定する場合の両方でsetDate()
関数が使用されていることがわかります。そのため、それ以降はすべてが同じ関数をトリガーするはずです。
どういうわけか、value
カレンダーがクリックされたときにのみフォームコンポーネントが更新されます。
私が間違っているかもしれないことについてのアイデアはありますか?
ありがとう!