【发布时间】:2012-01-12 00:57:11
【问题描述】:
我是一个骨干.js n00b,所以请多多包涵。
我正在尝试使用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: ''
}
});
【问题讨论】:
-
你也在使用合集吗?
标签: javascript jquery backbone.js