我正在尝试将功能添加到我的应用程序中,以便我可以更新我的数据库,然后更新 DOM。数据库更新得很好,但 DOM 没有。以下是我的部分观点:
App.Views.Table = Backbone.View.extend({
tagName: 'span',
initialize: function(options) {
this.model.on('change', this.render, this);
this.model.on('update', this.remove, this);
this.template = this.options.template;
this.url = this.options.url;
},
events: {
'click .verify': 'verify',
'click .spam': 'spam',
'click .duplicate': 'duplicate'
},
verify: function(e) {
id = e.currentTarget.id;
table = new App.Models.Table({ id: id });
table.urlRoot = this.url;
table.fetch();
table.toJSON();
table.set('verified', 1);
table.save();
},
spam: function(e) {
...
},
duplicate: function(e) {
...
},
remove: function() {
this.$el.remove();
console.log('hello');
},
retrieveTemplate: function(model) {
return _.template($('#' + this.template).html(), model);
},
render: function() {
//console.log(this);
this.$el.html(this.retrieveTemplate(this.model.toJSON()));
return this;
}
});
据我了解,完成后this.model.on('update', this.remove, this);
应该调用我的删除函数save
。但是回调没有触发,因为我没有得到console.log
并且我的 DOM 没有被更新。我究竟做错了什么?我遵循了一个教程,但在教程中一切正常。