我试图在用户点击某个内容后删除一个视图,然后删除与该视图关联的模型。我成功删除了模型但是this.model.destroy方法没有发送任何服务器请求?
这就是我的代码的样子:
PostsApp.Models.Post = Backbone.Model.extend({
url : '/tweet',
defaults:{
name: '',
adress: '',
pictureUrl: '',
postListing: '',
comments: ''
}
});
PostsApp.Collections.Posts = Backbone.Collection.extend({
model: PostsApp.Models.Post,
url: '/tweet'
});
PostsApp.Views.Post = Backbone.View.extend({
template: _.template($('#post-template').html()),
events: {
'click img': 'removeit'
},
removeit: function(){
this.remove();
this.model.destroy();
},
render: function(){
this.$el.html(this.template(this.model.toJSON()));
}
});
我在服务器端使用express,我应该如何在服务器端处理HTTP删除请求?但似乎没有发送请求?
编辑:
所以我做了一点进步改变了我的模型:
PostsApp.Models.Post = Backbone.Model.extend({
urlRoot : '/tweet',
idAttribute: '_id',
defaults:{
name: '',
adress: '',
pictureUrl: '',
postListing: '',
comments: ''
},
kill: function(){
this.destroy({success: function(model, response) {
console.log("sucess");
}});
}
});
我的服务器端路由器设置如下,以处理请求:
app.delete('/tweet/:id'), function(req,res){
};
现在正在发送删除请求,如:DELETE / tweet / 51b2548ba8568587ea000002 但我得到一个像这样的404错误: 删除localhost:3000 / tweet / 51b2548ba8568587ea000002 404(未找到)
答案 0 :(得分:0)
app.delete('/tweet/:id'), function(req,res){
};
我的括号在这里被错了..哇,所以应该是:
app.delete('/tweet/:id', function(req,res){
});
很奇怪表达并没有抛出任何错误..