سؤال

sil is the delete event, but it does not send delete request method.

var NoteModel = Backbone.Model.extend({
    urlRoot:"/DenemeBackbone/webresources/com.mycompany.denemebackbone.note",
    defaults: {
        note: "Boş"
    }
});

I have two views.

var NoteView = Backbone.View.extend({
    tagName: "tr",
    template: "<td> <span>{{note}}</span><input type='text' value='{{note}}' style='width: 190px;display: none;'/><button class='btn btn-danger btn-mini' style='float: right;'>Sil</button> </td>",
    model: {},
    events: {

        "click button":"sil"
    }

    sil:function(){
        this.model.destroy(); // HTTP DELETE
        this.remove();
        alert(this.model.note);
    }   

});
هل كانت مفيدة؟

المحلول

If you look at the source you can see what is going on,

If this.model.isNew() is true, then it will not send the xhr delete. isNew() returns this.id == null, so in order to delete it you should assign it an id.

ie.

var myNote = new NoteModel({
 id : 'myid'
});

نصائح أخرى

But not run.

  var NoteModel = Backbone.Model.extend({
    urlRoot:"/Deneme2/resources/com.mycompany.deneme2.note",
     id:null,
    defaults: {
        note: ""
    }

});

var NoteView = Backbone.View.extend({
    tagName: "tr",
    template: "<td> <span>{{note}}</span><input type='text' value='{{id}}' style='width: 190px;display: none;'/><button class='btn btn-danger btn-mini' style='float: right;'>Sil</button> </td>",
    model: {},
    events: {
        "dblclick span": "duzenlemeModu",
        "blur input": "duzenle",
        "click button":"sil"
    },
    duzenlemeModu: function () {
        this.$el.find("input").css("display", "");
        this.$el.find("span").css("display", "none");
    },
    duzenle: function () {
        this.model.save("note",this.$el.find("input").val());  // HTTP PUT
        this.render();

        this.$el.find("input").css("display", "none");
        this.$el.find("span").css("display", "");
    },
    sil:function(){     
        this.model.destroy(); // HTTP DELETE
        this.remove();
    }   ,
    render: function () {
        var html = Mustache.to_html(this.template, this.model.toJSON());
        $(this.el).html(html);

        return this;
    }
});

var AppView = Backbone.View.extend({

    el: $("body"),
    events: {
        "keypress #note": "kaydet"
    },
    kaydet: function (evt) {

        if (evt.keyCode !== 13) return;

        var noteModel = new NoteModel();
      noteModel.set("note", $("#note").val());

      noteModel.save(); // HTTP POST

        var noteView = new NoteView();
        noteView.model = noteModel;

        $(".table").append(noteView.render().el);
        $("#note").val("");
    }
});

var appView = new AppView();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top