définir l'attribut de tous les modèles de la colonne vertébrale de la collection
Je comprends que l'utilisation d'arracher méthode, nous pouvons obtenir un tableau des attributs de chaque modèle à l'intérieur d'un backbone de collecte
var idsInCollection = collection.pluck('id'); //outputs ["id1","id2"...]
Je veux si il existe une méthode qui définit un attribut pour chaque modèle de la collection,
var urlArray = ["https://url1", "https://url1" ...];
collection.WHAT_IS_THIS_METHOD({"urls": urlArray});
- Voulez-vous définir l'ensemble de la matrice pour chaque modèle, ou juste une entrée de tableau pour chaque modèle correspondant à l'index?
- tableau à l'entrée de chaque modèle avec l'index correspondant
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas une méthode, mais vous pouvez essayer:
each
(trait de soulignement) au lieu deforEach
(native).forEach
n'est pas compatible avec tous les navigateurs.forEach
aide dans le trait de soulignement.Il n'est pas exactement un pré-existante de la méthode, mais
invoke
vous permet de faire la même chose en une seule ligne:Si vous vouliez faire un re-utilisable de la méthode de jeu sur l'ensemble de vos collections, vous pouvez effectuer les opérations suivantes:
* EDIT *
Épine dorsale a depuis ajouté de son propre
set
méthode, et si vous écraser, vous aurez complètement casser votreCollection
. Par conséquent, l'exemple ci-dessus devrait vraiment être renommésetModelAttributes
, ou toute autre chose qui n'est passet
.Expansion sur David réponse, vous pouvez facilement mettre cette fonctionnalité dans une méthode personnalisée sur la collection. Voici ma façon de faire à l'aide de coffeescript:
Si vous voulais le faire en vanilla JS c'est exactement la même chose mais de ne pas exploiter la puissance de classes ou de splats. Donc plus comme:
Juste pensé que je poste mes légèrement mise à jour de la méthode basée sur machineghost de la version. Il utilise lodash invokeMap méthode au lieu de souligner l'invoquer. Il prend en charge la même syntaxe des options que le modèle standard.la méthode de jeu ... par exemple, ('prop', 'val') ou ({prop: 'val', prop: 'val'}) ainsi accepter et passer un objet d'options.
Si vous utilisez invoquer la syntaxe selon le trait de soulignement site devrait être
_.invoke(liste, methodName, *args) http://underscorejs.org/#invoke
Donc la fonction ci-dessus mentionné par machineghost devrait être
Espère que cela aide 🙂
_.invoke(collection, methodName, arguments)
se traduit parcollection.invoke(methodName, arguments)
colonne vertébrale ou un trait de Soulignement ne jamais inverser l'ordre des arguments -->collection.invoke('set', { url: someUrl })