¿Cómo borrar / eliminar los enlaces observables en Knockout.js?

Estoy creando una funcionalidad en una página web que el usuario puede realizar varias veces. A través de la acción del usuario, se crea un objeto / modelo y se aplica a HTML utilizando ko.applyBindings ().

El HTML enlazado a datos se crea a través de las plantillas de jQuery.

Hasta ahora tan bueno.

Cuando repito este paso al crear un segundo objeto / modelo y llamar a ko.applyBindings () encuentro dos problemas:

El marcado muestra el objeto / modelo anterior, así como el nuevo objeto / modelo.Se produce un error de javascript relacionado con una de las propiedades en el objeto / modelo, aunque todavía se muestra en el marcado.

Para solucionar este problema, después del primer paso, llamo a jQuery's .empty () para eliminar el HTML con plantilla que contiene todos los atributos de enlace de datos, de modo que ya no esté en el DOM. Cuando el usuario inicia el proceso para la segunda pasada, el HTML enlazado a datos se vuelve a agregar al DOM.

Pero como dije, cuando el HTML se vuelve a agregar al DOM y se vuelve a enlazar con el nuevo objeto / modelo, todavía incluye datos del primer objeto / modelo, y todavía recibo el error JS que no ocurre durante la primera pasada.

La conclusión parece ser que Knockout se aferra a estas propiedades vinculadas, aunque el marcado se haya eliminado del DOM.

Entonces, lo que estoy buscando es un medio para eliminar estas propiedades vinculadas de Knockout; diciendo que no hay un modelo observable. ¿Hay alguna forma de hacer esto?

EDITAR

El proceso básico es que el usuario carga un archivo; el servidor responde con un objeto JSON, el HTML enlazado a los datos se agrega al DOM, luego el modelo del objeto JSON se vincula a este HTML usando

<code>mn.AccountCreationModel = new AccountViewModel(jsonData.Account);
ko.applyBindings(mn.AccountCreationModel);
</code>

Una vez que el usuario ha realizado algunas selecciones en el modelo, se vuelve a publicar el mismo objeto en el servidor, el HTML enlazado a los datos se elimina de DOM y luego tengo el siguiente JS

<code>mn.AccountCreationModel = null;
</code>

Cuando el usuario desea hacer esto una vez más, todos estos pasos se repiten.

Me temo que el código está demasiado 'involucrado' para hacer una demostración de jsFiddle.

Respuestas a la pregunta(9)

Su respuesta a la pregunta