Juste curieux, comment peut-on créer une liaison 'foreach' qui répète sur une liste chaînée la façon dont la liaison 'foreach' actuelle se répète sur les tableaux?Reliure Knockout.js 'foreach' pour une liste chaînée
J'ai créé a jsFiddle for tinkering.
Je pense qu'une liste liée pourrait être un idiome utile à utiliser avec Knockout.js. En particulier, s'il est correctement fait, le DOM ne sera mis à jour que pour les éléments ajoutés/supprimés (la liste entière n'est pas mise à jour lorsqu'un élément est ajouté/supprimé) et l'ajout/suppression au milieu de la liste est complexe. O (1), contre O (n) pour un tableau.
Merci pour la publication. Je ne comprends pas le problème au paragraphe 3 - pourriez-vous élaborer, s'il vous plaît? Pourquoi auriez-vous besoin de l'observable qui a déclenché le changement? Voulez-vous dire l'élément précédent? Je m'attendrais à ce que cette structure soit nécessairement une liste à double sens (pour cette raison et d'autres), ce qui pourrait résoudre le problème qui vous préoccupe? Les frais généraux de tous les koobservables m'inquiètent - j'avais pensé (peut-être à tort) qu'ils étaient assez légers - sauf s'ils se trouvaient au bas d'un niveau d'abonnement, ce que ces itérateurs ne devraient pas être. –
Une approche alternative pourrait-elle être d'avoir une observable 'calculée 'qui traverse la liste chaînée, en plaçant chaque élément dans un tableau plat, ordonné, alors vous pouvez' foreach' sur cela. Cela vous permettrait-il de réaliser ce que vous vouliez? – WickyNilliams
J'ai mis à jour la réponse. Je ne vois pas comment le fait d'en faire un 'calculé' aide, cela en fait juste un tableau très cher. Je suis incapable de voir une raison de ne pas simplement utiliser un tableau en premier lieu. Il y a certainement de l'espace pour une nouvelle liaison qui ne met pas à jour cette section DOM à partir de zéro, mais elle utiliserait quand même un tableau. – SystemParadox