<li class =“active”>在您正在使用的页面的功能</li>

时间:2014-05-27 13:38:24

标签: twitter-bootstrap xpages xpages-ssjs

在xpage上我有一个导航栏。 在此导航栏上,您应该显示您所在的页面。 如何计算并将此类放入正确的li

我尝试了以下不起作用:

        <div class="collapse navbar-collapse">
        <ul class="nav navbar-nav">
            <li class="active">
                <xp:text escape="false" id="computedField1">
                    <xp:this.value><![CDATA[#{javascript:active = @RightBack(view.getPageName(),'/');
                     main ="<a href='product.xsp'>PRODUCTS</a>";
                     home ="<a href='home.xsp'>HOME</a>";
                     if (active =="product.xsp"){
                     return main
                     }
                     else {
                     return home
                     }}]]></xp:this.value>
                </xp:text>

            </li>
            <li>
                <a href="#">NEXT LINK</a>
            </li>
            <li>
                <a href="#">ANOTHER LINK</a>
            </li>
        </ul>
    </div>

实际上我想计算课程。 当我在HOME页面上时,HOME链接应该使课程处于活动状态。 当我在产品页面上时,HOME链接应该成为正常的li并且产品li应该获得活动类li。

我该如何计算课程?

据我所知,SSJS中没有增加课程的可能性?

2 个答案:

答案 0 :(得分:2)

您可以计算直通标记的属性,但您无法使用&#34;此。&#34;他们的符号。对于这种事情,我经常这样做:

<li class="${view.pageName == '/home.xsp' ? 'active' : ''}">...</li>
<li class="${view.pageName == '/products.xsp' ? 'active' : ''}">...</li>

答案 1 :(得分:0)

Marc - 我想知道这是否适合你。

在所有属性下的XPage中,您可以向页面添加属性。理论上,这些与自定义控件上的自定义属性类似。所以我想也许你可以添加一个名为&#34; selectedMenu&#34;的属性。并为其指定要突出显示的项目名称的值。

然后在导航栏自定义控件中添加一些代码以获取属性,然后将正确的类添加到所需的navBar菜单项。

我以前从未使用过像这样的XPage属性,但有人在工作。我认为迈克用他们做的事与你实际想要做的事情类似。

我发现了另一个SO问题,讨论了如何访问这些属性。

Getting properties/parameters from page level

这可能是一个很好的方法。