Reputation: 3
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);
}
});
Upvotes: 0
Views: 99
Reputation: 3
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();
Upvotes: 0
Reputation: 13853
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'
});
Upvotes: 1