Il codice di esempio si fa riferimento crea tutti i suoi parametri prima di impostare il metodo save(). Questo è il passo che ti manca; è necessario creare il parametro activeArtworks nell'istanza della galleria. L'aggiornamento non funziona perché stai tentando di aggiornare una proprietà che non è mai stata creata.
Mi aspetto che questo codice funzioni, anche se non l'ho testato perché parse.com richiede di creare un account per eseguire qualsiasi codice, il che è sciocco, e non me la sentivo di crearne uno:
var Gallery = Parse.Object.extend("Gallery");
var gallery = new Gallery();
var activeArtworks = 0;
gallery.activeArtworks = []; // or some more appropriate default if you have one.
gallery.save(null, {
success: function(gallery) {
gallery.set("activeArtworks", activeArtworks);
gallery.save();
}
});
Potrebbe anche valere la pena controllare se ci sono informazioni nelle intestazioni dell'errore 400 (la console di debug nel browser mostrerà queste nella sua scheda Rete). Mi aspetterei che Parse ti fornisca una sorta di informazione per aiutarti a risolvere i problemi, e questo è l'unico posto in cui si adatta ad un errore HTTP.
fonte
2013-06-14 06:34:54
Puoi guardare nel chrome debugger alla richiesta http effettiva che restituisce 400 e includerla nella tua domanda? – bklimt
Sure can @bklimt. Eccolo: POST https://api.parse.com/1/classes/galleries/cn5t2w81qN 400 (Bad Request) parse-1.0.0.min.js: 1 b._ajax parse-1.0.0.min. js: 1 b._request parse-1.0.0.min.js: 1 c.extend.save parse-1.0.0.min.js: 1 gallery.save.success fgcViewartwork.js: 211 c.extend .save.p.success parse-1.0.0.min.js: 1 b._ajax.g.onreadystatechange – vedran
Ignorare il fatto che "/ galleries /" nella richiesta API e il nome della galleria nel mio codice non corrispondono Qui. Ho risolto che un po 'di tempo fa - questo non è il problema qui – vedran