2012-04-12 70 views
0

使用Mustache js(邏輯較少的模板)有沒有辦法實現開關盒?爲此,我需要,因爲一類是基於例如值分配給DOM元素:MustacheJs中的開關盒

switch(tasks.Count) 
{ 
    case 0: 
     element.Class = "no-tasks"; 
    break; 
    case 1: 
     element.Class = "one-tasks"; 
    break; 
. 
. 
. 
} 

這就是我現在得到的代碼,我怎麼把它轉換爲模板(我相信有被渲染的模型方法是一個選項)但增加方法來確定使用哪個類是一個矯枉過正的,此外,這將污染我的模型沼澤!

  • 我問這個,因爲我使用Nustache MustacheJs到C#,.NET的一個端口,以使適用於小鬍子也適用於Nustache

回答

2

有幾個方法可以做到這一點嵌套model.Anything 。

在Javascript中,如果Mustache在值中遇到函數,它將使用隨附文本作爲唯一參數來調用它。

var data = { 
    foo: function(text) { return '<b>' + text + '</b>'; } 
} 

小鬍子

{{#foo}} 
    HI I LIKE FISH, thanks. 
{{/foo}} 

輸出

<b>HI I LIKE FISH, thanks.</b> 

搜索的小鬍子文檔 「拉姆達」。

另一種做法是做一個虛假/真實性檢查。

數據

{ foo: true } 

小鬍子

{{#foo}} 
    output this if true. 
{{/foo}} 
{{^foo}} 
    output if false 
{{/foo}}