Domanda

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);
    }   

});
È stato utile?

Soluzione

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'
});

Altri suggerimenti

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();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top