有没有办法在Mustache.js中创建一个switch语句
我有一个变量,它可以是四个不同值之一。 取决于它的价值,我想输出略有不同的模板。
有办法做到这一点吗?
P.S我已经看到了question,但是问题听起来是一样的,但在答案中,这个人正在回答如何实现if / else功能,我可以找到here。
关于代码的说明:
我有一个模板列表
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'
}
}
所以基本上我正在进行ajax调用,并与vars
一起返回type
,这可能是以下0,1,2,3
之一。根据这一点,我必须编写具体的文本
答案 0 :(得分:5)
编辑:我假设你正在使用javascript。在看到您的用例后,您可以通过将函数传递给mustache来解决此问题,例如:
function getType(){
switch(viewObject.typeid){
//your cases here return what you want the function to print
}
}
现在,你发送给胡子的对象应该有typeid,这将允许你将逻辑从Mustache(再次是无逻辑的)移回javascript。然后,您可以在代码中放置{{{getType}}}
。
<强>原始强>
如果我可能会问,您需要切换/案例声明的具体用法是什么?使用Mustache可能有一个更简单的解决方案。我编写了很多Mustache代码,并且从未遇到过使用视图模型传递函数时无法更好地解决的“切换案例”场景
请记住,您可以将函数作为参数传递给Mustache,这将允许您将逻辑从Mustache移回视图模型,这是(大多数情况下)一件好事。
如果不是这种情况,您可以随时切换把手:
Mustache用于无逻辑模板。如果你发现你的模板中有太多的逻辑,那么Mustache可能不是你的正确选择,你可以使用Handlebars来扩展Mustache,你现有的任何胡须代码都会继续工作。
虽然把手不包含switch-case语句,但它允许你以更简单的方式编写if / else语句,并且它允许你定义可以完成你的功能的辅助函数。