Épine dorsale de la collection fetch (ajouter:vrai) n'a pas de mise à jour de la collection
loadMore: function(){
var $this = this;
console.log(this.Messages); //SAME AS AFTER
this.Messages.url = '/js/messages/?start=' + this.Messages.length
this.Messages.fetch({'add':true,
success:function(){
console.log($this.Messages); //SAME AS BEFORE??
},
error:function(){
}
});
},
La collection n'est pas mis à jour. Après cette fonction, les événements sont déclenchés, et les nouveaux éléments sont dessinés sur l'écran. Le problème est que la collection n'a pas à ajouter de nouveaux modèles.
Avez-vous vérifié que les données sont effectivement retournés dans la appel?
Vous êtes seulement à la recherche pour les nouveaux modèles dans
Vous êtes seulement à la recherche pour les nouveaux modèles dans
$this.Messages
dans le success
de rappel? Si oui, êtes-vous sûr que, quand success
est appelée, la collection aurait déjà analysé la réponse et les a ajoutés à la collection?
OriginalL'auteur TIMEX | 2013-03-09
Vous devez vous connecter pour publier un commentaire.
Comme il a été mentionné dans une réponse précédente le
add
option a été supprimée dans la version 1.0.0. Vous pouvez accomplir la même chose en passantremove: false
à la place. À partir de la docs:OriginalL'auteur Radu
De la colonne vertébrale.Collection.fetch():
Alors quoi de neuf ici, c'est votre passé dans la fonction est assignée à
var succees
.collection[method](resp, options);
Est appelé et dans votre cas, la méthode est'reset'
.collection.reset
a à faire et à ajouter tous vos modèles de, feu de tous les événements sur le chemin. Je ne sais pas exactement ce qu'il se passe mais elle passe à traverscollection.reset
,collection.add
,model.add
, etc...je n'ai pas suivi tout ça.Je ne sais pas quel est le problème exactement, j'en suis désolé. J'espère que je peux au moins vous aider à essayer certaines choses alors peut-être que nous pouvons le comprendre. La ligne
if (success) success(collection, resp, options)
est l'appel à votre succès fonction. Ce que l'on pourrait essayer de faire est d'avoir votre succès rappel accepter le passé arguments et de faire un peu de consolation de ceux:L'autre chose est, je ne pouvais pas trouver n'importe où dans la source ou les docs où collection de.chercher prend une option ajouter. Si je l'ai raté, s'il vous plaît laissez-moi savoir, je tiens à le regarder.
Bonne chance, laissez-moi savoir ce que vous trouvez. Il pourrait être intéressant de fuite à travers avec une étape par débogueur trop.
De la merde, il me semble aussi que la console a souvent m'a montré la plus à jour la version de la collecte des objets quand il ne devrait pas avoir.
essayer de consoler les longueurs des collections à la place ou à quelque chose:
OriginalL'auteur nackjicholson
Épine dorsale 1.0 supprime cette fonctionnalité, casser le code qui dépend de ceci:
http://backbonejs.org/#Collection-fetch
Comparer avec:
"Si vous souhaitez ajouter les entrants modèles de la collection actuelle, au lieu de remplacer la collecte du contenu, pass {add: true} comme une option pour récupérer."
http://htmlpreview.github.com/?https://raw.github.com/documentcloud/backbone/0.9.2/index.html#Collection-fetch
Je suggère de revenir à une version antérieure de la Dorsale jusqu'à ce que ce problème est résolu.
OriginalL'auteur Yinxu
de la colonne vertébrale 1.0, vous devez déclencher de réinitialisation à la main:
OriginalL'auteur freestyle21