2012-09-19 12 views
5

¿Hay alguna forma elegante de vincular una vista a html ya renderizado en la página?Enlazar una vista de red troncal a html ya representador

Ejemplo su servidor carga todo su html de página, luego carga vistas sobre ese html sin usar el método de renderizado la primera vez que carga la página.

+0

No estoy seguro de lo que está preguntando. Como JavaScript es del lado del cliente, cualquier marco JS puede modificar elementos DOM sin tener que depender del servidor (a menos que esté utilizando servicios para cargar datos relacionados con AJAX). Esa es toda la idea detrás de las aplicaciones de una sola página: el servidor envía una vista html que contiene todas las plantillas y JavaScript representa las vistas y manipula el html. ¿Podría describir un poco más específicamente en qué está trabajando? – PhillipKregg

Respuesta

10

que he hecho algo similar a lo que creo que estamos tratando de hacer. En mi caso, agregué la funcionalidad Backbone sobre los formularios existentes. He aquí un ejemplo simplificada:

HTML existente:

<div id="my-app"> 
    <form name="input" action="html_form_action.asp" method="get"> 
    Username: <input type="text" name="user" id="username" /> 
    <input type="submit" value="Submit" /> 
    </form> 
</div> 

Backbone:

var MyFormView = Backbone.View.extend({ 
    events: { 
    "submit form": "formHandler" 
    }, 
    formHandler: function(evt) { 
    evt.preventDefault(); 
    var nameVal = $('#username').val(); 
    this.$el.append('<p>hello: ' + nameVal + '</p>'); 
    } 
}); 

$().ready(function(){ 
    var myForm = new MyFormView({el: "#my-app"}); 
}); 

La clave es pasar el HTML existente como la propiedad "el" cuando se crea la vista.

0

No estoy exactamente seguro de lo que está trabajando actualmente, pero hice una JSFiddle que utiliza solo vistas de red troncal, no hay modelos o colecciones o enrutadores de los que preocuparse.

Puede jugar con esto y ver cómo se carga la vista de la página principal en su contenedor.

Aquí es el violín: http://jsfiddle.net/phillipkregg/tVmTM/71/

1

no estoy seguro de lo que entendemos por una fantasía método , pero sus puntos de vista no es necesario para hacer que el html por su el sí mismos. Puede adjuntar fácilmente una vista a un elemento existente en la página simplemente asignándola a el. Si desea asignar el elé de su vista en un momento posterior (digamos que desea "cambiar" es el), entonces puede usar el método setElement para hacerlo. El uso del setElement también creará el $el en caché y moverá cualquier evento vinculado.

Cuestiones relacionadas