Quelle est la meilleure façon de clonage et de la copie d'un observablearray dans knockoutJS?
Question ça veut tout dire. Je veux copier un observables tableau à l'autre en KnockoutJS.
Vous devez vous connecter pour publier un commentaire.
Question ça veut tout dire. Je veux copier un observables tableau à l'autre en KnockoutJS.
Vous devez vous connecter pour publier un commentaire.
De cloner un observableArray vous voulez faire:
Si vous voulez juste faire une copie, alors vous feriez:
Le problème avec le deuxième exemple est que le tableau est le même, donc le pousser à matrice1 ou matrice2 en résulterait à la fois d'avoir la nouvelle valeur (comme ils pointent vers le même tableau).
J'ai été confronté à la même tâche; pour cloner un observables tableau. La seule façon que je pouvais comprendre comment le faire, c'est de convertir le observables à un JS objet, puis de les convertir cet objet à un objet observé. La fonction suivante nécessite KnockoutJS plugin de cartographie:
http://knockoutjs.com/documentation/plugins-mapping.html
Espère que cette aide
ko.computed()
, magasins juste valeur, vous devez redéfinircomputed
après clone.self.myObservable(new koModel(JSON.parse(ko.toJSON(oldObservable))))
__ko_mappings__
propriété si vous ne le mappage d'avant en arrière. N'oubliez pas de les ignorer cette propriété lorsque vous remapper précédemmenttoJS
-em objet.En supposant que vous avez quelque chose comme:
Vous devriez être capable de:
Pas exactement ce que vous demandez, mais je voudrais ajouter ceci pour la postérité...
Si vous voulez cloner une observable qui reste synchronisé avec l'original (le plus souvent pour créer un étranglement/sans rebond clone tout en conservant l'original), vous pouvez faire quelque chose en tant que telle:
const clone = ko.pureComputed(() => original()).extend({ rateLimit: 500 })