Опитвам се да премахна изглед, след като потребителят кликневърху нещо и след това също изтрийте модела, свързан с този изглед. Успешно премахвам модела, но методът 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 (Не е намерено)
Отговори:
0 за отговор № 1app.delete("/tweet/:id"), function(req,res){
};
скобите ми бяха поставени грешно тук ... уау, така че трябваше да бъде:
app.delete("/tweet/:id", function(req,res){
});
странно, че експресът не хвърли грешки ..