我是一个backbone.js n00b,所以请忍受我。backbone.js查看事件不发射
我想动态生成一个使用backbone.js的联系人列表,并附加一个onclick事件处理程序给每个,都无济于事。我的视图渲染正常,但点击事件没有注册。这里是我的代码:
App.Views.Contact = Backbone.View.extend({
initialize: function() {
this.render();
},
events: {
'click': 'select',
},
select: function(event) {
console.log('contact selected');
},
render: function() {
$('#contacts').append(tmplContact(this.model.toJSON()));
}
});
更新:这里是相应的收集
App.Collections.Contact = Backbone.Collection.extend({
initialize: function() {
this.bind('reset', function() {
console.log('COLLECTION RESET');
});
},
model: App.Models.Contact,
comparator: function(model) {
return model.get('name');
}
});
更新#2的代码:集合初始化和人口
App.Collections.roster = new App.Collections.Contact;
function getContacts() {
socketRequest('friends', function(data) {App.Collections.roster.reset(data)});
}
更新#3:模型定义
App.Models.Contact = Backbone.Model.extend({
initialize: function() {
this.set({id: this.get('token')});
this.set({avatar: parseAvatar(this.get('avatar'))});
this.set({name: parseName(this.toJSON())});
this.set({view: new App.Views.Contact({model: this})});
},
defaults: {
username: ''
}
});
你也在使用一个集合吗? – roberkules 2012-01-12 01:30:27
是的,我正在使用集合 – 2012-01-12 01:35:37