2012-03-19 18 views
5

Soy muy nuevo en la red troncal pero logro hacerlo funcionar desde el tutorial. Pero cuando quiero portar esas aplicaciones a la repetición de la espina dorsal, me encuentro atrapado en la plantilla. ¿Cómo accedo a mi modelo desde mi plantilla? o incluso desde el archivo js en sí? Me encuentro atrapado aquí por un tiempo ahora.Backbone Plantilla de plantilla

Backbone la plancha de caldera se refiere a https://github.com/tbranyen/backbone-boilerplate

+0

¿Puede dar algunos detalles/fragmentos que muestren qué código no funciona? – rfunduk

Respuesta

4

Para la mayoría javascript bibliotecas de plantillas, plantillas se produce en dos fases.

  1. Pase una cadena (que generalmente contiene HTML) a la función de "compilación" del motor de plantillas. Esto le devuelve una "función de plantilla" que puede ejecutar. Esto solo debe suceder una vez por plantilla durante toda la vida de su aplicación.
  2. Renderice la plantilla en resultados (generalmente HTML) invocando la función de plantilla compilada y proporcionando un "contexto" de datos que estará disponible para la plantilla. Esto se puede hacer de forma repetida con diferentes datos de contexto para producir HTML diferente.

.

//Compile your template string into a function 
//Happens 1 time only then you can cache the function 
var templateFunction = _.template("<p>Your <%- part %> is so <%- description %></p>"); 

//Generate your output HTML with varying sets of data. 
var html1 = templateFunction({part: "nose", description: "big"}); 
//html1 has "<p>Your nose is so big</p>"; 
var html2 = templateFunction({part: "cat", description: "fat"}); 
//html2 has "<p>Your cat is so fat</p>"; 

Esta es la misma idea básica para las plantillas de subrayado, JST, jade, y la mayoría de los otros motores de plantillas. Los "datos de contexto" son cómo su plantilla obtiene acceso a su modelo. Si lo desea, puede darle acceso directo al modelo subyacente al proporcionar un contexto como: {model: myModel};. Luego, en su plantilla puede hacer algo como <%= model.get("displayName") %>.

Cuestiones relacionadas