Вот мой сценарий. Я использую плагин отображения нокаута для создания наблюдаемой иерархии viewmodel для меня. В моей иерархии есть вложенные элементы. В определенной точке иерархии я хочу добавить кнопку Добавить, чтобы вставить новую пустую копию этого элемента в наблюдаемый символ. Проблема в том, что я не могу просто сказать anyArray.push(новый MyObject()).
Поскольку плагин сопоставления фактически создал для меня всю иерархию, у меня нет доступа к "MyObject". Поэтому, кажется, единственное, что я могу сделать, чтобы вставить новый элемент, - это посмотреть на предыдущий элемент и скопировать его. Я попробовал функцию ko.utils.extend, но это, похоже, не делает фактический клон. Это возвращает мне объект, но когда я обновляю этот объект, он все равно влияет на исходный объект, из которого он был скопирован.
См. jsfiddle пример