2011-04-06 21 views
5

Ok así que esto es un poco al azar, pero ..plantillas Jquery con la maquinilla de afeitar cómo utilizar la maquinilla de afeitar dentro de las secuencias de comandos de texto/html

Usando MVC 3 (con la maquinilla de afeitar vista de motores) en Knockout.js que utiliza jQuery Plantillas ive me encuentro con un pequeño problema que estoy seguro es posible resolver.

Para utilizar jQuery-tmpl es necesario proporcionar una plantilla en

<script type="text/html"> 
...template elements go here... 
</script> 

Ahora el problema es que el motor de la maquinilla de afeitar vista no parece generar HTML dentro de estas etiquetas de secuencia de comandos específicos. Maneja html estándar, (script type = "text/javascript") bien, pero parece que simplemente no hace nada con la etiqueta de script mencionada anteriormente.

¿Alguien sabe cómo evitar este problema, es decir, cómo usar MVC 3 Razor con jQuery-Tmpl?

Respuesta

3

Hay una solución bastante buena en esta entrada del blog: http://www.wiredprairie.us/blog/index.php/archives/1204

Esto crea un ayudante "plantilla" que emite las etiquetas script de arranque/final.

De lo contrario, tengo algunos ideas para poner plantillas en archivos externos, que sería otra forma de evitar este problema. Implica almacenar las plantillas en archivos .html e inyectarlas en la página en etiquetas de script. Sin duda, hay muchas formas en que esto se puede lograr, aunque sea en el lado del cliente o del servidor, solo algunas ideas.

0

Un enfoque más general si desea mantener las cosas en el documento es utilizar @ Html.Raw para generar html sin afectar el estado de la sintaxis de tiempo de edición.

Por ejemplo:

@Html.Raw("<script type='text/x-dot-template' id='awesome_template'>") 
    <!-- insert some awesomeness here -->   
@Html.Raw("</script>") 

resulta que como el método de ayuda sugerido más arriba un poco mejor, pero no siempre ha sido algo que era capaz de poner en práctica, así que esto es una alternativa con sus propios beneficios (a saber, claridad sobre la facilidad de uso y la concisión)

Cuestiones relacionadas