gpt4 book ai didi

javascript - 未捕获的 typeerror 对象没有方法 'on' : backbone. js

转载 作者:行者123 更新时间:2023-11-28 08:51:29 25 4
gpt4 key购买 nike

我是 Backbone 新手。我已经开始使用 Backbone 开发一个网络应用程序,但是,这个错误让我步履维艰。任何帮助,将不胜感激。

这是我的模型类和集合:

    var tasks = Backbone.Model.extend({ 
default: function() {
return {
task : ''
}}
});

var taskslist = Backbone.Collection.extend({
model: tasks
});

var alltasks = new taskslist();

这是 View 类:

    var taskview = Backbone.View.extend({ 
model: new tasks(),
tagName: 'div',
initialize : function() {
this.template = _.template($('#temp').html());
},
render : function () {
this.$el.html(this.template(this.model.toJSON()));
return this;
}
});



var alltasksview = Backbone.View.extend ({
model : 'tasks',
el : $('#box1'),

initialize : function() {
this.model.on('add', this.render, this);
},
render: function () {
var self = this;
self.$el.html('');
_.each(this.model.toArray(), function(tasks, i) {
self.$el.append(new tasksview({ model:tasks }).render().$el);
});
}
});

并且在 jQuery 文档就绪函数中,我监听按钮单击,以在单击时添加该模型的项目:

$(document).ready(function() { 

$("#but1").click(function(e) {

var task1 = new tasks({ task : $('#text1').val() });
alltasks.add(task1);
console.log(alltasks.toJSON());
});
});

这段代码抛出主题错误。另外,我的 Backbone 版本是 1.0.0。

谢谢。

最佳答案

正如您在 Catalog of Events 中看到的那样add 事件存在,并且应该在您的模型上触发。

问题可能出在模型上,在上面的代码中,看起来你的模型只不过是一个字符串:

....
model : 'tasks',
el : $('#box1'),
...

可能没有 add 事件。尝试正确初始化 this.model,它将按预期工作。

这是我在另一个 SO question 中找到的 fiddle 。 : http://jsfiddle.net/ambiguous/Das2t/

关于javascript - 未捕获的 typeerror 对象没有方法 'on' : backbone. js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19093240/

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