在XPage中使用SSJS或CSJS切换药丸或导航可见属性

时间:2015-07-24 21:18:29

标签: twitter-bootstrap-3 attributes xpages xpages-ssjs

我有一个相当复杂的SSJS片段,用于确定ul类中的特定药丸=" nav nav-pills"导航器此刻SSJS将viewScope.vsPillVisible设置为true或false。到现在为止还挺好。现在我该怎么做药丸。现在假设药丸清单看起来像这样:

<ul class="nav nav-tabs">
  <li class="active"><a href="#">Home</a></li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown” href="#">Menu 1
<spanclass="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Submenu 1-1</a></li>
<li><a href="#">Submenu 1-2</a></li>
<li><a href="#">Submenu 1-3</a></li>
</ul>

我现在想要隐藏下拉选项卡,如果vsPillVisible == false我认为我需要设置一个属性,但不确定是否可以在SSJS中完成,然后设置要设置的属性。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您可以将SSJS代码添加到通常以<xp:<xe:<xc:开头的代码中。它们被渲染(= html发送到浏览器)到其他东西,或者如果render属性返回false,则可能根本不渲染。

您的相关代码只是html,会按原样发送到浏览器。您现在的问题是如何根据viewScope变量隐藏部分HTML代码。

一种常见的方法是通过<xp:panel> ... </xp:panel>围绕部分XPage / html标记。

您可以将渲染属性添加到此类面板,并根据SSJS代码有条件地渲染整个块。在你的情况下,它可能看起来像这样

<ul class="nav nav-tabs">
    <li class="active"><a href="#">Home</a></li>
    <xp:panel rendered="#{viewScope.vsPillVisible}">
        <li class="dropdown">
           <a class="dropdown-toggle" data-toggle="dropdown” href="#">Menu 1
              <span class="caret"></span></a>
           <ul class="dropdown-menu">
                ...
           </ul>
        </li>
    </xp:panel>
    ... 
</ul>

如果viewScope.vsPillVisible为false,则不会呈现整个<li class="dropdown"> ... </li>块(=发送到浏览器)。

通常,小组代码<xp:panel> ... </xp:panel>会呈现给<div> ... </div>。如果您不想这样,只需在面板标记中添加属性disableOutputTag="false"