我有一个包含日历的backbone.js模型。用户可以在日历中来回走动,我可以获得所选日历日的活动。
在我的模型中,我有
initialize: function(){ this.on('change:date',this.get_cal()); }, get_cal: function(){ alert('get calendar'); this.fetch(... }
在我看来我有
cal_date: function(move){ Myapp.cal.attributes.date.setDate(Myapp.cal.attributes.date.getDate()+move); }
当日期发生变化时,我预计骨干会触发更改事件,并获取新日期的日历事件。不幸的是,这种情况并没有发生。
我也尝试将打印日期作为
添加到模型中Myapp.cal.set({print_date: formatted_date});
认为可能主干缺少更新,因为我没有调用'set',或者因为它看到了一个日期对象,并认为它已经有一个日期对象,因此没有改变。
我也试图在视图中使用Myapp.cal.trigger('change')
触发更改,但这也无效。也没有通过调用Myapp.cal.cal_events.refresh()
删除日历事件,其中cal_events是包含days事件的集合。
你知道这里有什么问题吗?
答案 0 :(得分:3)
我认为问题出在此行 get_call 之后的括号中:
this.on('change:date',this.get_cal());
您应该删除它们,因为它们在初始化时调用 get_call 而不是使它们成为事件处理程序。