Estoy trabajando en una página que está siendo servidor desde una aplicación ASP.NET MVC3 que quiero usar en KnockoutJS.Conexión knockoutjs a un elemento DOM ya poblada
En la vista me estoy aprobó una Modelo poblado (que estoy convirtiendo a KnockoutJS viewModel) y quiero construir algo del lado del servidor DOM. Esto parece lógico ya que ya tengo los objetos para generar el HTML inicial y proporcionará una mejor experiencia a los usuarios, ya que no habrá un retraso entre la carga de la página y la población DOM (también significa que tengo una funcionalidad básica para no -JavaScript clientes).
Después de investigar Asumo que necesito para crear una costumbre bindingHandler
así que creé esto:
ko.bindingHandlers.serverForEach = {
init: function() { /* no-op */ },
update: function() {
//call off to the built in loop handler
}
};
Así que mi pensamiento era que crear un controlador que no hace nada en la fase init
(como el DOM ya está lleno) y en la fase update
, solo insertaré el nuevo valor. Me gustaría aprovechar las plantillas incorporadas, así que esta también puede ser una solución genérica.
El problema es que todo se derrumba en este escenario. Si el init
no hace nada, el update
falla ya que el bindingContext que aparece como el último argumento parece incorrecto, y si incluyo el init, destruirá el HTML existente.
¿Alguien ha intentado esto/sabe lo que debería hacer para apoyar este escenario o está demasiado lejos de lo que puede/debería hacer?
Además, no quiero tener un elemento DOM por separado para el HTML generado por el servidor que el HTML Knockout.