2012-11-28 9 views
5

Mam następujący kod w celu utworzenia nowego modelu do kolekcji. Instrumentu bazowego magazyn danych jest zdalne API:Backbone nie model.create wywołanie dowolnego zwrotnego

 var postCreationStatus = this.model.create(newPostModel, { 
      wait : true  // waits for server to respond with 200 before adding newly created model to collection 
     }, { 
      success : function(resp){ 
       console.log('success callback'); 
       console.log(resp); 
      }, 
      error : function(err) { 
       console.log('error callback'); 
       console.log(err); 
      } 
     }); 

Nowy model zostanie stworzony, i mogę to potwierdzić z bazy danych, ale ani sukcesu, ani błędu callbacks sprawdzony.

po stworzeniu zostało zakończone, chcę przekierować użytkownika. Przekierowanie przedwcześnie zabija żądania AJAX, dlatego ważne jest, używam zwrotnego sukces.

Serwer odpowiada odpowiedzią JSON { id : 11 } i stanem HTTP 200 OK.

+1

Ten tytuł jest niepoprawny, to pytanie nie dotyczy kolekcji.create –

Odpowiedz

6

Patrząc w kodzie szkieletowej, zdałem sobie sprawę, mój wywołanie funkcji create() była błędna. Sukces i błędach callbacks musiały być wewnątrz obiektu jest przekazywana jako drugi argument, a nie jako trzeci argument. Zmieniony i fragment roboczy jest następujący:

var postCreationStatus = this.model.create(newPostModel, { 
    wait : true, // waits for server to respond with 200 before adding newly created model to collection 

    success : function(resp){ 
     console.log('success callback'); 
     console.log(resp); 
     that.redirectHomePage(); 
    }, 
    error : function(err) { 
     console.log('error callback'); 
     // this error message for dev only 
     alert('There was an error. See console for details'); 
     console.log(err); 
    } 
}); 
Powiązane problemy