【发布时间】:2012-11-05 04:31:16
【问题描述】:
我有一个日历日模型,并且在每个日历日,我都有一系列事件。
如果当天有事件,集合刷新,没问题,我展示新事件。但是,如果当天没有事件,则集合不会被清空,并且集合仍会显示最后一个模型当天的事件(如果用户去第二天,则为前一天)。
我已经在模型的获取成功中创建了集合,所以它不应该是一个异步问题。
我的模特是
Myapp.Models.CalDay = Backbone.Model.extend({ 网址:'日历', 初始化:函数(){ this.get_cal(); }, get_cal:函数(){ //日历不存在,所以第一次通过, Myapp.CurrentCal = 这个; Myapp.cal.set({'date': new Date(),'draw_slider': true,'put_date':'today'}); Myapp.CurrentCal.Events = new Myapp.Collections.DayEvents(); this.bind('change:date',this.fetch_cal); this.fetch_cal(); } Myapp.CurrentCal.bind("fetched",this.get_view); }, fetch_cal:函数(){ console.log(Myapp.CurrentCal.Events); Myapp.Calendar.fetch({ 成功:功能(响应){ Myapp.CurrentCal.Events.reset(response.attributes.calendar_events); Myapp.CurrentCal.trigger("fetched"); }, 错误:函数(){ alert('获取日历出错'); } }); }, 获取视图:函数(){ console.log(Myapp.CurrentCal.Events); 新的 Myapp.Views.CalendarDay(); } });【问题讨论】:
-
当访问新的一天时,您是否在视图上调用
remove()? -
好的,继续回答我认为可能存在的问题。如果我错了,你会发布你的 view 和 controller 定义吗?
-
对不起@rudolph9 我没想到这么快就有答案。我已经在下面回复了您的回答。
-
如果当天没有事件,
response.attributes.calendar_events会返回什么?它是否进入成功回调? -
@Cyclone 没有事件时回调不会返回 calendar_events 数组。我确实触发了响应成功。我正在检查
response.attributes.calendar_events.length,然后重置,但它总是返回为有事件时的旧日历日的长度。所以,同样的问题。如果response.attributes.calendar_events.length>0或response.attributes.calendar_events有 calendar_events,则始终会触发检查。
标签: javascript backbone.js backbone.js-collections