knockout.js

knockout.js - ¿Cómo forzar la actualización de una vista sin que se active automáticamente desde un elemento observable?



(3)

Creé un JSFiddle con mi manejador de enlace no válido de bindHTML aquí: https://jsfiddle.net/glaivier/9859uq8t/

Primero, guarde el controlador de enlace en su propio archivo (o un archivo común) e inclúyalo después de Knockout.

Si usa esto, cambie sus enlaces a esto:

<div data-bind="bindHTML: htmlValue"></div> OR <!-- ko bindHTML: htmlValue --><!-- /ko -->

Nota: esto es principalmente para depurar y comprender KnockoutJS.

¿Hay alguna manera de solicitar explícitamente Knockout para actualizar la vista del modelo de vista (ya encuadernado)? Estoy buscando algo como:

ko.refreshView();

Entiendo que este no es un uso previsto de Knockout, pero aún quiero saber si existe dicho método para la depuración y el aprendizaje.


En algunas circunstancias, puede ser útil simplemente eliminar los enlaces y luego volver a aplicar:

ko.cleanNode(document.getElementById(element_id)) ko.applyBindings(viewModel, document.getElementById(element_id))


No puede llamar a algo en todo el modelo de vista, pero en un observable individual puede llamar a myObservable.valueHasMutated() para notificar a los suscriptores que deben volver a evaluar. Esto generalmente no es necesario en KO, como mencionaste.