Jak wyczyścić / usunąć obserwowalne powiązania w Knockout.js?

Buduję funkcjonalność na stronie internetowej, którą użytkownik może wykonywać wielokrotnie. Dzięki akcji użytkownika tworzony jest obiekt / model i stosowany do HTML przy użyciu ko.applyBindings ().

HTML związany z danymi jest tworzony za pomocą szablonów jQuery.

Jak na razie dobrze.

Kiedy powtarzam ten krok, tworząc drugi obiekt / model i wywołując ko.applyBindings (), napotykam dwa problemy:

Znacznik pokazuje poprzedni obiekt / model, a także nowy obiekt / model.Występuje błąd javascript związany z jedną z właściwości obiektu / modelu, mimo że nadal jest renderowany w języku znaczników.

Aby obejść ten problem, po pierwszym przejściu wywołuję plik .empty () jQuery, aby usunąć szablon HTML, który zawiera wszystkie atrybuty powiązania danych, dzięki czemu nie ma go już w DOM. Gdy użytkownik rozpoczyna proces drugiego przejścia, HTML związany z danymi jest ponownie dodawany do DOM.

Ale tak jak powiedziałem, kiedy HTML zostanie ponownie dodany do DOM i ponownie powiązany z nowym obiektem / modelem, nadal zawiera dane z pierwszego obiektu / modelu, a ja wciąż otrzymuję błąd JS, który nie występuje podczas pierwszego przejazdu.

Wniosek wydaje się być taki, że Knockout trzyma się tych powiązanych właściwości, nawet jeśli znaczniki są usuwane z DOM.

Więc czego szukam, to sposób na usunięcie tych związanych właściwości z Knockout; mówiący nokaut, że nie ma już obserwowalnego modelu. Czy istnieje sposób, aby to zrobić?

EDYTOWAĆ

Podstawowy proces polega na tym, że użytkownik przesyła plik; serwer następnie odpowiada obiektem JSON, HTML związany z danymi jest dodawany do DOM, a następnie model obiektu JSON jest powiązany z tym HTML przy użyciu

mn.AccountCreationModel = new AccountViewModel(jsonData.Account);
ko.applyBindings(mn.AccountCreationModel);

Gdy użytkownik dokona pewnych wyborów na modelu, ten sam obiekt zostanie wysłany z powrotem do serwera, HTML związany z danymi zostanie usunięty z DOM i wtedy mam następujący JS

mn.AccountCreationModel = null;

Gdy użytkownik chce to zrobić jeszcze raz, wszystkie te kroki są powtarzane.

Obawiam się, że kod jest zbyt „zaangażowany”, by zrobić demo jsFiddle.