this.model.destroy什么都不做

时间:2013-06-10 15:39:17

标签: node.js backbone.js backbone-views backbone-model

我试图在用户点击某个内容后删除一个视图,然后删除与该视图关联的模型。我成功删除了模型但是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(未找到)

1 个答案:

答案 0 :(得分:0)

app.delete('/tweet/:id'), function(req,res){
};

我的括号在这里被错了..哇,所以应该是:

app.delete('/tweet/:id', function(req,res){
});
很奇怪表达并没有抛出任何错误..