代码之家  ›  专栏  ›  技术社区  ›  Swift

速度模板-在“foreach”循环中没有“break”[重复]

  •  1
  • Swift  · 技术社区  · 6 年前

    我在做一些关于Velocity模板语法的简短阅读。具体来说,我试图创建由模板引擎有条件地呈现的内容。更具体地说,我想检查合流实例中的用户权限组,返回一个组名数组,然后根据当前权限级别需要访问的内容有条件地呈现内容(例如菜单项)。

    我读到没有“break”指令,这对我来说似乎很可笑,所以我开始在模板代码中测试“break”的使用。我最后得到的是:

    #foreach ($group in $groupList)
    #if (
    $group == "administrators" ||
        $group == "group-1" ||
        $group == "group-2" ||
        $group == "group-3" ||
        $group == "group-4" ||
        $group == "group-5" ||
        $group == "group-6" 
    )
    
    <a href='<redacted link>'><li data-balloon-length="fit" data-balloon="View 
    your agreements with us, e.g. your customer agreement, or our SLA's" data- 
    balloon-pos="down">
    <i class="fas fa-shower"></i>
    <p>
      Hygiene
    </p>
    </li></a>
    #break
    #else
    <a href='<redacted link>'><li class="no-permissions" data-balloon-length="fit" 
    data-balloon="You have insufficient privileges to view this page" data- 
    balloon-pos="down">
    <i class="fas fa-shower"></i>
    <p>
      Hygiene
    </p>
    </li></a>
    #break
    #end
    #end
    

    我对Velocity模板非常陌生,最近有几个月的实践。我看到了一些巨大的优势,能够有条件地呈现内容,而不是例如使用JS或jQuery进行后处理。

    我的问题是,我做得对吗?因为从我读到的, #break 不存在(也许是我发现的旧文档,不确定)。

    另外,一个直接的问题是 #中断 指令存在于Apache速度模板中吗?

    我想指出的是,这段代码只需要最少的测试就可以工作,任何一个组被正确识别都不是特定的顺序,它只会呈现一个列表项,或者另一个列表项,而不管组的顺序如何。

    对不起,我的论文有问题!并提前感谢您的意见。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Claude Brisson    6 年前

    这个 #break 在Velocity 1.6中引入了指令。

    很容易检查 documentations for the different versions .