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
.根据这一点,我必须编写特定的文本
编辑:我假设你正在使用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,您拥有的任何当前胡须代码将继续有效.
尽管把手不包含switch-case语句,但它允许您以更简单的方式编写if/else语句,并且它允许您定义可以完成您的功能的辅助函数.