106 votes

Comment pour déclencher le rappel réussi sur un model.save() ?

<pre><code></code><p>Le modèle est affiché correctement sur le serveur qui gère l’enregistrement, mais le rappel de succès n’est pas déclenché. Est-ce que je dois envoyer quelque chose du serveur de ?</p></pre>

122voto

Julien Points 7456

Le premier argument d’enregistrer est les attributs pour économiser sur le modèle :

58voto

Yasser Points 9307

Pour une raison inconnue , aucun de la méthode ci-dessus n’a fonctionné pour moi. L’api seulement ne fut pas touché dans mon cas.

Mais plus tard, en cherchant sur cela, je suis tombé sur ce lien, où on avait tenté au lieu de comme premier paramètre.

donc, cela a fonctionné pour moi. Espérons que cela vous aide aussi.

37voto

Igor G. Points 868

Votre serveur doit retourner un objet JSON. Si la réponse n’est pas un objet JSON, les rappels ne tirera pas.

Si votre serveur ne renvoie pas pour réussir un objet JSON, effectuez une sauvegarde avec dataType : « text » option, comme ceci :

Avec cette option, il vous attendra pas pour un JSON dans la réponse, mais un texte, et donc le rappel sera lancé.

11voto

Vous pouvez utiliser lib de trait de soulignement comme suit comme épine dorsale dépend déjà cela. N’oubliez pas de premier argument d’enregistrer doit, soit avoir des attributs ou vous pouvez juste passer {} dans le cas où vous souhaitez enregistrer le modèle lui-même.

8voto

nologo Points 898

donc je suis un peu confus - ai-je encore besoin de passer tous les attributs dans l'ordre pour moi d'appeler un enregistrer l'événement? que faire si mon modèle est grande.. je ne souhaite à l'ensemble de tous les biens manuellement

im appelant modèle.enregistrer et de tenter de faire le suivant:

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

ok juste pour répondre à ma propre question au cas où quelqu'un trouve ce post, je n'ai la suite qui fonctionne:

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

EDIT: je ne pourrais pas vous répondre pour une raison quelconque, mais je peux le modifier

mais vous n'avez pas à définir id: this.model.get('id') vous pouvez juste passer un objet vide, car un vide attribut de ne pas prolonger les attributs, ne fait rien:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X