Voici mon scénario. J'utilise le plugin knockout mapping pour créer une hiérarchie de modèles de vues observables. Ma hiérarchie contient des éléments imbriqués. À un point particulier de la hiérarchie, je veux placer un bouton Ajouter pour insérer une nouvelle copie vierge de cet élément dans l'observablearray. Le problème est que je ne peux pas simplement dire whateverArray.push(new MyObject()).
Comme le plugin de mappage a créé toute la hiérarchie pour moi, je n'ai pas accès à "MyObject". Il semble donc que la seule chose que je puisse faire pour insérer un nouvel élément soit de regarder un élément précédent et de le copier. J'ai essayé la fonction ko.utils.extend, mais elle ne semble pas créer un clone réel. Elle me rend un objet, mais lorsque je mets à jour cet objet, cela affecte toujours l'objet original à partir duquel il a été copié.
Voir jsfiddle exemple