Quels sont les événements sont déclenchés lors de l'appel de fetch() sur un Backbone.js collection?
Dans mon backbone.js app, il y a un Trips collection
qui détient Trip models
, qui travaille avec LocalStorage
. Je suis en mesure d'appeler Trips.create(form_attributes)
pour créer et enregistrer un voyage à la Todos store
.
Quand j'ai installer mon application, j'appelle Trips.fetch({ success: trips_fetch_success })
, et trips_fetch_success
reçoit une réponse qui montre la Trip models
que le Trips collection
détient.
J'ai essayé de lier refresh
et change
événements de la Trips collection
, mais ces événements ne sont pas pris en me faisant croire que j'ai la mauvaise idée sur les événements qui Trips.fetch
déclencheurs.
Ma question: quels événements doivent Trips.fetch
déclencheur? Et sont les événements déclenchés sur la collection ou sur chaque Trip models
?
Vous devez vous connecter pour publier un commentaire.
Collection.fetch()
appellerareset
en cas de succès, qui à son tour va déclencher un "reset" de l'événement. Tous les abonnés de la collections événement de réinitialisation doit recevoir l'événement.La clé ici est "sur la réussite." J'ai eu ce problème, seulement pour découvrir que la dorsale a été silencieusement à avaler mes messages d'erreurs. Passez un gestionnaire d'erreur, qui, au moins, les journaux de
console.log()
, et voir ce qui se passe:(Note: les Anciennes versions de backbone.js va déclencher "actualiser" au lieu de "reset")
Collection#refresh
a été renommé pourCollection#reset
. L'événement est également renommé en conséquence.reset
rappel a deux arguments par défaut"reset" (collection, options)
et il est déclenché lors de la collecte de l'ensemble du contenu a été remplacé.`Si vous utilisez épine dorsale 1.0, vous aurez besoin de passer reset:vrai dans le fetch() appel afin de se lier avec l'événement de réinitialisation:
Comme de l'épine dorsale 1.0, modèle.fetch() déclenche une "sync". C'est ce que vous devez lier à.
Voici la partie pertinente de l'backbone.js source où le "sync" de l'événement est déclenché: