Twitter bootstrap <;li类=”;主动的&燃气轮机;在页面功能中,您';重新开始

Twitter bootstrap <;li类=”;主动的&燃气轮机;在页面功能中,您';重新开始,twitter-bootstrap,xpages,xpages-ssjs,Twitter Bootstrap,Xpages,Xpages Ssjs,在xpage上,我有一个导航条。 在这个导航栏上,你有应该显示你在哪个页面上的。 如何计算并将该类设置为正确的li 我尝试了以下不起作用的方法: <div class="collapse navbar-collapse"> <ul class="nav navbar-nav"> <li class="active"> <xp:text escape="false" i

在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>

事实上,我想计算一下班级。 当我在主页上时,主页链接应该使类处于活动状态。 当我在产品页面上时,主页链接应成为正常的li,产品li应获得活动类li

我怎样计算班级


据我所知,在SSJS中没有添加类的可能性

您可以计算passthrough标记的属性,但不能使用“this.”符号。对于这类事情,我经常做:

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

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

    在XPage本身的“所有属性”下,可以向页面添加属性。理论上,这些属性类似于自定义控件上的自定义属性。所以我想也许你可以添加一个叫做“selectedMenu”的属性。并为其指定一个要高亮显示的项目名称的值

    然后在navbar自定义控件中添加一些代码以获取属性,然后将适当的类添加到所需的navbar菜单项中

    我以前从未使用过像这样的XPage属性,但有人在工作中使用过。我想迈克用它们做了一件和你实际上想要的相似的事情

    我发现了另一个关于如何访问属性的问题


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

    产品实际上是一个下拉列表(类下拉列表),因此当在该下拉列表下单击其中一个链接时,应该处于活动状态(类下拉列表处于活动状态)。在oneUI世界中,每个页面上的“布局”自定义控件都有一个自定义的“navPath”属性。这将被馈送到应用程序布局控件中链接节点的“selection”属性。工作良好,非常灵活。也许在这里可以用regex做类似的事情……大卫的建议很好。我使用的“真正”答案是以Bootstrap4XPages的方式为控件编写一个渲染器-在渲染器中,有一些方法可以检查是否有任何子级处于活动状态。然而,这是一个PITA——navigationPath/regex匹配路径要快得多。e、 g.class=“#{javascript://^\/Posts\/.*$/.test(compositeData.navPath)“'active open':''}”Jesse,有没有办法在exmample:li class=”中放入or语句${view.pageName=='/home.xsp'?等这可能是我的解决方案,因为我的下拉列表下只有2个页面。我只需添加或在?之前,然后我可以放置另一个页面名。它似乎是这样工作的,谢谢!