js collection不监听模型更改事件
Backbone.js collection doesn't listen model change event
我刚刚开始使用backbone.js创建一个spa。我试着让藏书听模型变化,但什么都没发生。这是模型和集合:
var Book = Backbone.Model.extend({
idAttribute: 'id',
defaults: {
id: null,
title: '',
author: '',
completed: false
}
});
var BooksCollection = Backbone.Collection.extend({
model: Book,
url: 'books',
initialize: function() {
this.listenTo(this.model, 'change', this.debug);
},
debug: function () {
console.log('something happened !!!');
}
});
这是视图:
var BookView = Backbone.View.extend({
template: _.template($('#viewBook').html()),
events: {
"click #save": "bookSave"
},
initialize: function() {
this.listenTo(this.model, 'change', this.render);
},
render: function() {
$(this.el).html(this.template(this.model.toJSON()));
return this;
},
bookSave: function() {
this.model.set({author: "nobody"});
}
});
当我点击#save按钮时,作者被更改了,但没有记录任何内容。我哪里错了?
来自模型的事件自动冒泡到集合中,因此您可以像这样直接侦听模型更改:
// in the collection
initialize: function() {
this.listenTo(this, 'change', this.debug);
},
相关文章:
- 主干模型更改事件只触发一次
- 模型更改事件不会启动
- 了解执行模型和事件循环
- 使用模型中的主干调解器发布事件
- 智能表通过ng模型设置值时不会触发任何事件
- 如何在事件上对jquery上的ng模型进行指令更新
- 骨干-为什么不;t集合.重置触发模型事件
- Angular.js-Socket.io事件更新模型,而不是视图
- 更新淘汰视图模型属性时激发更改事件
- 主干-当特定属性更改时激发事件的模型
- socket.io事件回调中模型更改时角度视图未更新
- AngularJS没有't在Django管理日期小部件上的jQuery事件后更新ng模型
- 主干网中的共享模型不获取事件
- 中断驱动与事件驱动 I/O 模型
- 一个控制器如何在 Ember .js 中观察任意控制器/模型上的事件
- 当多个对象共享同一视图模型时,如何在 kendo UI 中获取事件源
- 了解 JavaScript 的 dom0 事件模型
- 继承jQuery's事件模型
- 自定义事件模型,无需在JavaScript中使用DOM事件
- 在ruby应用中设置事件模型的js json文件