【发布时间】:2012-05-14 21:08:48
【问题描述】:
我开始学习 Backbone.js,我从 this boilerplate 开始,并通过从磁盘上的静态文件加载 JSON 数据并将其显示在 html 表中来做了一个示例。
然后我尝试在按钮上绑定一个事件,该按钮应该从集合中删除一个元素,然后从 DOM 中删除。事情正常,点击触发destroy方法,在集合上触发remove事件,但success或errordestroy的回调没有任何结果
有人知道吗?
型号:
define([
'underscore',
'backbone'
], function(_, Backbone) {
var memberModel = Backbone.Model.extend({
url: "/members.json",
defaults: {
email: "",
firstname: "",
lastname: "",
gender: "",
language: "",
consent: false,
guid: "",
creationDate: ""
},
initialize: function(){
}
});
return memberModel;
});
观点:
define([
'jquery',
'underscore',
'backbone',
'mustache',
'collections/members',
'text!templates/members/page.html'
], function($, _, Backbone, Mustache, membersCollection, membersPageTemplate){
var membersPage = Backbone.View.extend({
el: '.page',
initialize: function(){
this.members = new membersCollection();
this.members.on('remove', function(){
// works fine
$('.members-body tr').first().remove();
console.log('removed from collection');
});
},
render: function () {
var that = this;
this.members.fetch({success: function(){
var wrappedMembers = {"members" : that.members.toJSON()};
that.$el.html(Mustache.render(membersPageTemplate, wrappedMembers));
$('#delete-member').click(function(){
that.members.at(0).destroy({
// prints nothing!!!
success: function(){ console.log('sucess'); },
error: function(){ console.log('error'); }
});
});
}});
}
});
return membersPage;
});
【问题讨论】:
-
您是否为您的模型或收藏集设置了
url? -
是的,
url在模型和集合上都设置了
标签: backbone.js requirejs mustache backbone-events js-amd