在mustache.js中切换语句

Sal*_*ali 3 javascript templates mustache

有没有办法在Mustache.js中创建一个switch语句

我有一个变量,它可以是四个不同值之一.取决于它的价值我想输出略有不同的模板.

有没有办法做到这一点?

PS我已经看到了这个问题,但不过问题听起来是一样的,但在答案中,这个人正在回答如何实现if/else功能,我可以在这里找到.

关于代码的说明:

我有一个模板列表

var templates = {
    friends :
        'here there is some html with {{vars}}'+
        'and a button on which I have to write something like'+
        'add to friends | already your friend | invitation was sent | your invitation was rejected'
    }
}
Run Code Online (Sandbox Code Playgroud)

所以基本上我正在做一个ajax调用,并与vars它一起返回我type,这可能是以下之一0,1,2,3.根据这一点,我必须编写特定的文本

Ben*_*aum 5

编辑:我假设你正在使用javascript.看到您的用例后,您可以通过将函数传递给mustache来解决此问题,例如:

function getType(){
    switch(viewObject.typeid){
    //your cases here return what you want the function to print
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,你发送给胡子的对象应该有typeid,这将允许你将逻辑从Mustache(再次,无逻辑)移回javascript.然后你可以放入{{{getType}}}你的代码.

原版的:

如果我可能会问,您需要切换/案例声明的具体用法是什么?使用Mustache可能有一个更简单的解决方案.我编写了很多Mustache代码,并且从未遇到过"切换案例"的情况,通过使用视图模型传递函数无法更好地解决这个问题

请记住,您可以将函数作为参数传递给Mustache,这将允许您将逻辑从Mustache移回视图模型,这是(大多数情况下)一件好事.

如果不是这种情况,您可以随时切换车把:

Mustache用于无逻辑模板.如果您发现模板中有太多逻辑,那么Mustache可能不是您的正确选择,您可以使用Handlebars而不是扩展Mustache,您拥有的任何当前胡须代码将继续有效.

http://handlebarsjs.com/

尽管把手不包含switch-case语句,但它允许您以更简单的方式编写if/else语句,并且它允许您定义可以完成您的功能的辅助函数.