2012-04-12 46 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}}