1

我得到了这个form-componentdatepicker里面有一个基于 Pikaday 的子组件。

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