我收到错误:
对象渲染没有方法适用于以下代码。
可能是什么原因? 除了javascript的链接外,html页面不包含任何代码 我该怎么做才能删除错误?
(function($) {
window.Book = Backbone.Model.extend({});
window.Library = Backbone.Collection.extend({
model: Book
}); // end of Collection
window.LibraryView = Backbone.View.extend({
el: $('body'),
events: {
'click button#btn_add': 'btn_add'
},
initialize: function() {
$(this.el).append("View initialized");
_.bindAll(this, 'render', 'btn_add');
this.collections = new Library();
this.collections.bind('add', 'render', this);
this.startingDisplay();
},
startingDisplay: function() {
$(this.el).append("<input type='text' id='t1' /><button id='btn_add'>Add</button>");
},
btn_add: function() {
book = new Book({
title: "first"
});
alert("Name : " + book.get('title'));
this.collections.add(book);
},
render: function() {
alert("render called");
},
}); // end of LibraryView
libraryview = new LibraryView();
})(jQuery);
答案 0 :(得分:4)
您没有使用正确的语法来绑定add
集合事件。使用:
// this.collections.bind('add', 'render', this);
this.collections.bind('add', this.render, this);
第二个参数应该是回调(函数)。
<强> DEMO 强>