Backbone.js - model.save () ne déclenche pas une requête PUT
J'ai une demande de base à l'aide de Backbone.js ce n'est pas faire de PLACER des appels (mise à jour du modèle). Depuis le front-end, ce que j'appelle un des modèles save
fonction ne pas METTRE d'appel; cependant, si je le remplace par destroy
elle permet de faire une SUPPRESSION de l'appeler pour le back-end. Quelqu'un a une idée de ce que pourrait être le problème? La fonction se déclenche pas, une demande est le saveTask
fonction.
App.Views.Task = Backbone.View.extend({
template: _.template("<label>ID:</label><input type='text' id='taskId' name='id' value='<%= _id %>' disabled /><br><label>Title:</label><input type='text' id='title' name='title' value='<%= title %>' required/><br><label>Content:</label><input type='text' id='content' name='content' value='<%= content %>'/><br><button class='save'>Save</button>"),
events: {
"change input":"change",
"click .save":"saveTask"
},
render: function(eventName){
$(this.el).html(this.template(this.model.toJSON()));
//console.log(this.generateTemplate());
return this;
},
change: function(event){
var target = event.target;
console.log('changing ' + target.id + ' from: ' + target.defaultValue + ' to: ' + target.value);
change[target.name] = target.value;
this.model.set(change);*/
},
saveTask: function(){
this.model.set({
title:$("#title").val(),
content:$("#content").val()
});
if(this.model.isNew()){
App.taskList.create(this.model);
} else {
this.model.save({});
}
}
});
source d'informationauteur Theo Alvarez
Vous devez vous connecter pour publier un commentaire.
Si votre modèle est nouveau, puis au moment de vous enregistrer, cela va déclencher une méthode post.
Si votre modèle n'est cependant pas nouvelle et mise à jour, il va METTRE le feu.
si cela ne fonctionne pas pour vous, il se peut que votre modèle ne dispose pas d'un id de propriété, dans le cas où vous êtes à l'aide d'une pièce d'identité avec un nom différent, par exemple l'id de la tâche, puis dans votre modèle, vous devez définir le idAttribute à taskID sorte d'épine dorsale utilise cette propriété que l'Id et le tout sera normal.
comme ceci:
voici le lien vers la documentation sur Idattibute
http://backbonejs.org/#Model-idAttribute
aussi un autre problème pourrait être l' {} dans votre enregistrer appel
essayez juste de
au lieu de
Je crois que le modèle est toujours attend paramètre options et probablement aussi les rappels
Si vous regardez l'épine Dorsale de la src, vous remarquerez que trop...
======
Dans mon cas, il échoue en raison de validations.Comme je l'ai enregistrer le modèle il valide tous les attributs du modèle et de la collection que je suis à l'aide de liste de l'interface n'est pas nécessaire de tous les attributs du modèle.
J'ai été confronté aux mêmes problèmes et de recherche dans Google et trouvé votre question et de lire la solution et commentaires.Que je me rends compte que dans la mise à jour de la dorsale spécifications, il est mentionné que lorsque le modèle.save() s'exécute avant que le modèle de demande,il est d'abord appel à valider et si valider réussit qu'il ira de l'avant d'autres sages échoue, et c'est la raison pour laquelle il ne veut pas montrer le moindre demande de réseau en chrome débogueur onglet réseau.
Je dois écrire la solution pour le cas auquel je suis confronté,d'autres pourraient être confrontés à différents problèmes.
Épine dorsale du la fonction de synchronisation est ce que j'ai à la liquidation de l'aide. Vous devez passer en "mise à jour" en tant que premier paramètre (la "méthode" de paramètre).