【问题标题】:switch statement in mustache.jsmustache.js 中的 switch 语句
【发布时间】:2012-12-03 06:41:12
【问题描述】:

有没有办法在 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 之一。取决于此,我要写具体的文字

【问题讨论】:

    标签: javascript templates mustache


    【解决方案1】:

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

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

    现在,您发送到 mustache 的对象应该具有 typeid,这将允许您将逻辑从 Mustache(同样是无逻辑​​的)移回 javascript。然后你可以在你的代码中放置{{{getType}}}

    原文:

    如果我可能会问,您需要 switch/case 语句的具体用途是什么?使用 Mustache 可能有一个更简单的解决方案。我已经编写了很多 Mustache 代码,但从未遇到过使用视图模型传递函数并不能更好地解决的“switch-case”场景

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

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

    Mustache 用于无逻辑模板。如果您发现模板中的逻辑过多,Mustache 可能不是您的正确选择,您可以使用 Handlebars 来代替 Mustache 扩展,您现有的任何 mustache 代码都将继续工作。

    http://handlebarsjs.com/

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-25
      • 2013-09-24
      • 1970-01-01
      • 2010-09-17
      • 2011-11-27
      • 2014-10-06
      • 2023-04-03
      相关资源
      最近更新 更多