我得到了这个form-component
,datepicker
里面有一个基于 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
在单击日历时更新。
关于我可能做错了什么的任何想法?
谢谢!