[Backbone.js] Wie trigge ich den Erfolgsrückruf bei einer model.save () an?


Answers

Aus irgendeinem unbekannten Grund funktionierte keine der oben genannten Methoden für mich. Die api wurde in meinem Fall nur nicht getroffen.

Aber später, als ich danach suchte, stieß ich auf diesen Link , wo null anstelle von {} als ersten Parameter versucht hatte.

this.model.save(null, {
    success: function (model, response) {
        console.log("success");
    },
    error: function (model, response) {
        console.log("error");
    }
});

Also, das hat für mich funktioniert. Hoffe das hilft dir auch.

Question
this.model.save({
  success: function(model, response){
    console.log('success');
  },
  error: function(){
    console.log('error');
  }
})

Das Modell wird ordnungsgemäß auf dem Server veröffentlicht, der das Speichern behandelt, aber der Erfolgsrückruf wird nicht ausgelöst. Muss ich etwas vom Server zurücksenden?




Der folgende Code ist der Code, den ich für die Sicherung des Backbone-Modells verwende.

this.model.save(model,{
   success:function(model){
       console.log("Saved Successfully");
   },
   error:function(model){
       console.log("Error");
   }
});

Prost

Roy MJ




In der Initialisierungsfunktion binden Sie die Synchronisierungsmethode an eine von Ihnen definierte Methode (onSaveSuccess)

            initialize: function (options) {
                    this.model.on('sync', _.bind(this.onSaveSuccess, this));
},
            onSaveSuccess: function() {
                console.log('saved');
                this.render();
            },

Auf diese Weise wird bei jeder Ausführung von this.model.save () die onSaveSuccess-Funktion als Callback ausgeführt, wenn die Synchronisierung erfolgreich ist




Sie können die Unterstrichbibliothek wie folgt verwenden, da das Rückgrat bereits davon abhängt. Denken Sie daran, dass das erste Argument von save entweder Attribute haben muss oder Sie einfach {} übergeben, wenn Sie das Modell selbst speichern möchten.

this.model.save({}, _.bind(function(model, response){
  //Do whatever you want e.g.
  this.collection.add(model)
}, this))





Links