2010-05-28 10 views
6

¿Hay una manera de inyectar de forma dinámica las plantillas parciales (para que funcionen de la misma manera tanto en Rubí & Javascript)? Básicamente, estoy tratando de representar diferentes tipos de objetos en una lista.dinámicamente hacer que las plantillas parciales usando bigote

Lo mejor que puedo llegar a es la siguiente:

<div class="items"> 
{{#items}} 
<div class="item"> 
    {{#is_message}} 
    {{> message}} 
    {{/is_message}} 

    {{#is_picture}} 
    {{> picture}} 
    {{/is_picture}} 
</div> 
{{/items}} 
</div> 

No estoy súper emocionada acerca de este enfoque. ¿Hay una manera mejor?

También tenga en cuenta que los diferentes tipos de modelos para los puntos de vista pueden tener campos que no son similares. Supongo que siempre podría ir al denominador común más bajo y hacer que el hash de datos contenga el html; sin embargo, prefiero usar las plantillas de bigote.

+1

¿Alguna vez encontró una solución? Estoy pensando en llamar 'Mustache.render' dentro de uno de los métodos lógicos y devolver el resultado. – Jeremy

+0

Sí, eso es lo que comencé a hacer. Renderice una plantilla e inyéctela en la variable. –

Respuesta

1

Hice lo mismo que tú, y para cada tipo de propiedad que necesitaba un parcial, que acaba de establecer una variable dinámica dinámica en el modelo de datos js que se está representando en la plantilla ...

eval("this.set({is_" + this.get("propertyType") + ": true})") 

o

this["is_" + propertyType] = true 

por lo menos no tienen que configurar manualmente el 'is_whatever' variable ...

que estaría bien si mustache.js o ICanHaz.js tenían alguna sintaxis inteligente para dy propiedades namic dentro de las etiquetas de bigote ... tal vez algo como esto:

{{>{{message}} }} 
Cuestiones relacionadas