2010-05-28 19 views
6

C'è un modo per iniettare in modo dinamico modelli parziali (e farlo funzionare allo stesso modo in entrambi i file Ruby & Javascript)? Fondamentalmente, sto cercando di rendere diversi tipi di oggetti in una lista.Reso dinamicamente modelli parziali usando i baffi

Il meglio che posso venire in mente è questa:

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

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

Io non sono super-esaltato su questo approccio. C'è un modo migliore?

Si noti inoltre che i diversi tipi di modelli per le viste possono avere campi non simili. Suppongo che potrei sempre andare al minimo comune denominatore e avere l'hash dei dati contenente l'html, tuttavia preferirei usare i modelli dei baffi.

+1

Hai mai trovato una soluzione? Sto pensando di chiamare 'Mustache.render' dentro uno dei metodi logici e restituire il risultato. – Jeremy

+0

Sì, questo è quello che ho iniziato a fare. Rendi un modello e inseriscilo nella variabile. –

risposta

1

ho fatto la stessa cosa che hai fatto, e per ogni tipo di proprietà avevo bisogno di una dinamica parziali, ho appena impostato una variabile dinamica del modello di JS dati che vengono rese nel modello ...

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

o

this["is_" + propertyType] = true 

almeno non c'è bisogno di impostare manualmente la variabile 'is_whatever' ...

che sarebbe stato bello se mustache.js o ICanHaz.js avevano qualche sintassi intelligente per dy proprietà namic all'interno dei tag moustache ... forse qualcosa del genere:

{{>{{message}} }} 
Problemi correlati