1

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カレンダーがクリックされたときにのみフォームコンポーネントが更新されます。

私が間違っているかもしれないことについてのアイデアはありますか?

ありがとう!

4

0 に答える 0