gpt4 book ai didi

javascript - 主干集合在重置时不会清空

转载 作者:行者123 更新时间:2023-11-28 09:34:55 25 4
gpt4 key购买 nike

我有一个日历日模型,在每个日历日中,我都有一组事件。

如果当天有事件,集合就会刷新,没问题,我会显示新事件。但是,如果当天没有事件,则集合不会被清空,并且集合仍显示最后一个模型当天的事件(如果用户转到第二天,则为前一天)。

我已经在模型获取成功时创建了集合,因此它不应该是异步问题。

我的模型是

Myapp.Models.CalDay = Backbone.Model.extend({    url:'calendar',    initialize: function(){        this.get_cal();        },    get_cal: function(){        //calendar doesn't exist, so first time through,            Myapp.CurrentCal = this;            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: function(){        console.log(Myapp.CurrentCal.Events);        Myapp.Calendar.fetch({        success: function(response) {            Myapp.CurrentCal.Events.reset(response.attributes.calendar_events);            Myapp.CurrentCal.trigger("fetched");                },          error: function() {              alert('error getting calendar');            }        });    },    get_view: function(){          console.log(Myapp.CurrentCal.Events);          new Myapp.Views.CalendarDay();    }});

最佳答案

documentation表示调用reset而不传递任何模型作为参数将会清空集合。因此,对于没有事件的所有,您需要调用reset,而不将模型作为参数传递,或者从服务器返回空数组:你说。

和/或者您可以在 success 回调中检查响应,并根据条件调用

Myapp.CurrentCal.Events.reset(response.attributes.calendar_events);

Myapp.CurrentCal.Events.reset();

关于javascript - 主干集合在重置时不会清空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13225953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com