我有一个datepicker UI小部件,我试图让它与我的路线保持同步。路线非常简单:
/months
/months/Jan-2013
/months/Feb-2013
...
如果用户首先输入其中一条动态路线(例如/months/Jan-2013
),我很难更新datepicker。
我该怎么做?不幸的是,要更改日期我需要使用datepicker的API(即我不能使用处理程序帮助程序并只更新HTML),所以我认为我需要一个自定义函数视图。我尝试过使用观察到的属性,但没有成功。
答案 0 :(得分:0)
以下是我提出的解决方案:
App.MonthRoute = Ember.Route.extend({
setupController: function(controller, model) {
controller.set('model', model);
this.controllerFor('application').set('activeMonth', model.get('id'));
}
});
现在我的ApplicationController
总是知道“选定月份”。我可以在我的datepicker视图的init中使用它来正确设置日期:
App.DatepickerView = Ember.View.extend({
didInsertElement: function() {
var _this = this;
$('#dp').datepicker({
'format': 'M yyyy',
'minViewMode': 'months',
})
.on('changeDate', function(e) {
$(this).datepicker('hide');
var id = $(this).datepicker().data('date').replace(" ", "-"),
month = App.Month.find(id);
_this.get('controller').transitionToRoute('month', month);
});
// right here:
if (this.get('controller.activeMonth')) {
$('#dp').datepicker('setDate', this.get('controller.activeMonth'));
}
}
});
欢迎任何其他答案/建议。