gpt4 book ai didi

jquery - fullCalendar 与backbone.js 给出错误

转载 作者:行者123 更新时间:2023-12-01 04:09:51 25 4
gpt4 key购买 nike

我正在尝试实现 fullCalendar使用backbone.js 但我得到一个错误:未捕获错误:bindAll 必须传递函数名称

我正在关注这个tutorial这有点旧,所以可能已经过时了,但是检查网络上的其他最新示例,代码似乎是正确的。我假设我正在使用 Rails 应用程序,但我还没有连接到数据库,并且我的数据是一个假的 json 文件。

这是我的代码:

$(function() {
var CalendarApp = Backbone.View.extend({
el: $('#wrap'),

initialize: function(){
this.headerModel = new HeaderModel();
this.headerView = new HeaderView({
model: this.headerModel,
el: $('header')
});
this.headerModel.fetch();

this.eventsView = new EventsView({
el: $("#calendarView"),
collection: events
}).render();

this.events.fetch();
}
});

var calendar = new CalendarApp;

});

EventsView.js(这里出现错误)

var EventsView = Backbone.View.extend({
collection: events,

initialize: function(){
_.bindAll(this);

this.collection.bind('reset', this.addAll);
},

render: function(){
this.$el.fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay',
ignoreTimezone: false
},
selectable: true,
selectHelper: true,
editable: true
});
},

addAll: function(){
this.$el.fullCalendar ("addEventSource", this.collection.toJSON());
}
});

事件集合:

var Events = Backbone.Collection.extend({
model: Event,
url: "events"
});

var events = new Events();

EventModel.js

var Event = Backbone.Model.extend();

我缺少什么?

最佳答案

bindAll是一个 underscore.js 方法。在主干中,它通常用于将 this 绑定(bind)到类中定义的一堆方法。正如错误所示,您必须至少为其提供一个函数。

例如,如果您希望确保 View 中的 addAll 方法访问正确的 this,您可以像这样绑定(bind)它:

var EventsView = Backbone.View.extend({
collection: events,

initialize: function(){
_.bindAll(this, 'addAll');

this.collection.bind('reset', this.addAll);
},

// Render function removed to clarify

addAll: function(){
this.$el.fullCalendar ("addEventSource", this.collection.toJSON());
}
});

关于jquery - fullCalendar 与backbone.js 给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22236891/

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