这是首次尝试制作backbone.js应用程序。 我有一个联系人,这是我的模型和联系人列表/集合。
初始呈现和提取联系人列表工作正常。
现在我正在尝试在点击事件后从集合中删除联系人。 看起来我在ContactsView的删除功能中做错了。 当我在该方法结束时使用console.log联系人时,不会更改this.contacts集合。
感谢任何帮助!
var Contact = Backbone.Model.extend({
});
var Contacts = Backbone.Collection.extend({
model: Contact,
url: '/backbone/crm/contact'
});
var ContactsView = Backbone.View.extend({
initialize: function() {
this.contacts = new Contacts();
this.contacts.bind("reset", this.render, this);
this.contacts.bind("change", this.render, this);
this.contacts.bind("remove", this.render, this);
this.contacts.fetch();
},
events: {
"click .delete": "delete"
},
render: function() {
$("#contacts tbody").replaceWith(
$("#contacts_tmpl").render({ 'contacts': this.contacts.toJSON() }));
},
delete: function(e) {
var id = $(e.currentTarget).parents("tr").attr("id");
var model = this.contacts.get(id);
this.contacts.remove(model);
}
});
var contactsView = new ContactsView({ el: $("#contacts")});
答案 0 :(得分:0)
该模型已从集合中有效删除。但现在我需要将服务器端移除。
我通过这样做实现了这个:
var Contacts = Backbone.Collection.extend({
model: Contact,
url: '/backbone/crm/contact',
initialize: function() {
this.bind("remove", this.delete, this);
},
delete: function(model) {
model.destroy();
}
这工作并发送正确的删除请求,但我发现这种尴尬,从delete方法调用destroy方法。