2014-07-14 8 views
10

Sto cercando di assegnare i valori all'interno di un modello, l'idea è di fare qualcosa di simile:E 'possibile assegnare un valore di parametro all'interno di manubrio di modelli senza l'utilizzo di aiutanti?

{{#if author}} 
     {{className = 'classA'}} <- trying to implement this line. 
    {{else}} 
     {{className = 'classB'}} 
    {{/if}} 

<div class={{className}}></div> 

E 'possibile farlo senza registerHelper?

+0

ho bisogno di più contesto. Cosa vuoi fare con la persona? È una variabile javascript? – tire0011

+0

Ho cambiato l'esempio, si spera che ora sia più chiaro. – Ravit

risposta

8

Si può fare questo con un parziale.

parziale:

<div class="{{classname}}">{{var1.author}}</div> 

modello:

{{#if author}} 
{{> mypartial var1=. classname="classA"}} 
{{else}} 
{{> mypartial var1=. classname="classB"}} 
{{/if}} 

In questo esempio ho superato l'ambito corrente come var1. Non riesco a ricordare se l'oscilloscopio rimane lo stesso e la nuova variabile viene semplicemente aggiunta ad esso o se devi passare l'ambito manualmente.

1
{{#if author}} 
     <div class='{{ classA }}'></div> 
    {{else}} 
     <div class='{{ classB }}'></div> 
    {{/if}} 

o provare

<div class='{{#if author}} {{ classA }} {{else}} {{ classB }} {{/if}}'></div> 

o forse questo

creare uno script

<script> 
    $(function(){ 
     var class; 
     {{#if author}} 
      class = {{ classA }} 
     {{else}} 
      class = {{ classB }} 
     {{/if}} 

    var $specials = $('.special'); 
    $specials.removeClass('special'); 
    $specials.addClass(class); 
    }) 

</script> 
+0

Questa soluzione non è molto buona per me, ho bisogno di usare questo parametro in diversi punti. Speravo in una soluzione più elegante. – Ravit

+0

vedi la mia modifica. più idee non ho – tire0011

9

avevo bisogno di questa soluzione risolto nello stesso modo il manifesto originale previsto. Quindi ho creato una funzione di aiuto per fare questo per me.

function setVariable(varName, varValue, options){ 
    options.data.root[varName] = varValue; 
}; 

contenuti all'interno delle opzioni del soccorritore, è il blocco di dati, con la radice delle variabili helper.

Posai variabile all'interno dell'oggetto radice, sia assegnando o sovrascrittura con il valore fornito.

L'helper in html assomiglia molto a questo.

{{setVariable "thisVar" "Contents Here"}} 

<div> 
    {{thisVar}} 
</div> 
+0

ma sta stampando anche la variabile. ? come sbarazzarsi di quello? –

Problemi correlati