문제

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