Comment puis-je insérer un modèle dans un backbone.js collection dans un index spécifique?
J'ai besoin d'insérer un modèle dans une Collection à la position de la Collection.longueur-2. Le dernier modèle de la collection doit toujours rester le dernier modèle de la collection.
Ce que j'ai essayé jusqu'à présent:
J'ai ajouté une "page" modèle de la Collection "Pages", et a ensuite essayé de les échanger autour de par la modification de leur séquence:
var insertedpage = Pages.at(Pages.length-1);
var lastpage = Pages.at(Pages.length-2);
insertedpage.set({sequence: Pages.length-1});
lastpage.set({sequence: Pages.length});
J'ai aussi essayé de supprimer la dernière page, puis ajouter une nouvelle page, puis ajouter la dernière page de retour dans.
var lastpage = Pages.pop();
Pages.add({example1: example2});
Pages.push(lastpage);
ni l'un ni travaillé. La nouvelle page apparaît toujours comme le dernier modèle de la Collection. Dois-je appeler à une sorte de fonction de commande d'après cela?
Vous devez vous connecter pour publier un commentaire.
Désolé pour la réponse brève (n'ont pas le temps de répondre), mais regardez la définition d'un comparateur de fonction.
http://backbonejs.org/#Collection-comparator
de la colonne vertébrale.Collection.ajouter()
prend unoptions
objet qui prend en charge uneat
clé pour la spécification de l'index.Exemple:
Le long de la même suggestion que Rob Hruska, utilisez
de la colonne vertébrale.Collection.ajouter()
avecat
dans leoptions
objet.Vous avez mentionné que
Pages
semble être triés par l'attributsequence
; ne vous arrive d'avoir uncomparator
fonction définie sur la collection de Pages?Une autre question, avez-vous souhaitez mettre à jour cet attribut
sequence
sur TOUS les modèles de page actuellement dans la collection lorsqu'une nouvelle page est ajoutée à la 2ème à la dernière position? Ou était-ce l'attribut tenter d'accomplir votre question initiale?