给定特定路线,我无法在我的视图中触发自定义功能。
通常,如果我访问/posts/1,并且我的视图中有这个
{{ id }}
无论我是从我的应用程序中导航到路线,还是在页面刷新时第一次访问 /posts/1,id 都会更新。
但是,如果模板不那么直接怎么办?例如,我正在使用具有自己的 API 的日期选择器来更新显示。所以,当数据发生变化时,我需要调用
this.$('#dp').datepicker('setDate', month)
如果路线从应用程序内更改,我可以使用此功能,但如果用户从这些路线之一开始怎么办?我尝试在视图上添加自定义方法
App.DatepickerView = Ember.View.extend({
didInsertElement: function() {
....
},
setMonth: function(month) {
this.$('#dp').datepicker('setDate', month.get('id'));
}
});
并像这样连接到路线:
App.MonthRoute = Ember.Route.extend({
setupController: function(controller) {
App.DatepickerView.setMonth(controller.get('model'));
}
})
但我知道这setMonth
是未定义的。解决这个问题的正确方法是什么?
更新:这是 Datepicker 的模板:
{{#view App.DatepickerView }}
<div class="filter-section">
<div id="dp" class="input-prepend date">
<span class="add-on"><strong>Month</strong></span>
<input class="span2" type="text" placeholder="Select a month">
</div>
</div>
{{/view}}