2014-07-14 12 views
10

我想在模板中指定的值,這個想法是做這樣的事情:是否可以在不使用幫助器的情況下在句柄模板中分配參數值?

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

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

是否有可能這樣做沒有registerHelper?

+0

我需要更多的上下文。你想和人做什麼?它是一個JavaScript變量? – tire0011

+0

我改變了這個例子,希望現在更清楚。 – Ravit

回答

8

可以與部分做到這一點。

部分:

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

模板:

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

在這個例子中,我通過了目前的範圍爲VAR1。我不記得範圍是否保持不變,並且新變量剛添加到它,或者您必須手動傳遞範圍。

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

,或者嘗試

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

或者也許這

創建一個腳本

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

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

</script> 
+0

這個解決方案對我來說不太好,我需要在幾個地方使用這個參數。我希望有一個更優雅的解決方案。 – Ravit

+0

請參閱我的編輯。我還沒有更多想法 – tire0011

9

我需要這個解決方案以與原始的海報預期相同的方式解決。因此我創建了一個輔助函數來爲我做這件事。

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

包含在幫助程序中的選項中的是數據塊,它是輔助變量的根。

我把我的變量放在根對象中,或者用提供的值賦值或覆蓋。

html中的助手看起來很像這樣。

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

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

它也在打印這個變量。 ?如何擺脫這一點? –

相關問題