2012-06-20 130 views
0

是否可以使用小鬍子進行條件渲染?例如:如果我想根據X的狀態顯示不同的值? 例如。有條件的渲染可能嗎?

if x.value=1 
         <td>            
          <span class="label label-success">{{this.X1}}</span></td>      
else x.value=2                
         <td>            
          <span class="label label-warning"{{this.X2}}</span></td> 
else if x.value=3       
         <td>            
          <span class="label label-inverse"{{this.X3}}</span> </td> 

回答

1

挖掘到的文件後,我發現,這個功能可以使用助手來實現:

Handlebars.registerHelper('HelperName', function (status) { 
      var statusClass = { 
       '1': 'label-inverse', 
       '2': 'label-important', 
       '3': 'label-warning', 
       '4': 'label-success' 
      }; 
      return statusClass[status]; 
     }); 

,並在類似模板使用它:

<td>            
<span class="label {{HelperName this.myStatus}}">TEXT</span>         
</td> 
4

我相信你唯一能做的就是檢查布爾屬性,例如

{{#IsLate}} 
    <span class="late">You owe me money, sucka.</span> 
{{/IsLate}} 
{{^IsLate}} 
    <span class="on-time">No money due at this time.</span> 
{{/IsLate}} 

您可能想要考慮構建一個適合您需求的新包裝對象。

+1

爲一個真正的條件是'開放{{#IsLate}}'不是'{{IsLate}}'。 – mauris

+0

有趣。所以,如果條件值不是布爾值,它將不適用於鬍鬚? – dotNetNewbie

+1

鬍鬚的整點是「無邏輯模板」。不過,我相信你可以用把手做到這一點。 – Gho5t