检查数组中链接的单击是否具有子菜单键值。IF true 运行一些代码 ELSE 运行其他代码

我有一个对象,linkItems,它包含一个数组。我不知道如何检查点击的链接是否有子菜单然后运行一些代码,例如不要关闭菜单否则运行关闭菜单?


                            <ul class="main-nav" onclick="{!c.onClick}">

                                <aura:iteration items="{!v.linkItems}" var="item" indexVar="i">

                                        <aura:if isTrue="{!item.subMenu}">

                                            <li>

                                                <a data-menu-item-id="{!item.id}" href="JavaScript:Void(0);">{!item.label}</a>

                                            <ul>

                                                <aura:iteration items="{!item.subMenu}" var="subItem" indexVar="id">

                                                    <li><a data-menu-item-id="{!subItem.id}" href="#">{!subItem.label}</a></li>

                                                </aura:iteration>

                                            </ul>

                                            </li>

                                        <aura:set attribute="else">

                                                <li><a data-menu-item-id="{!item.id}" href="">{!item.label}</a></li>

                                        </aura:set>

                                        </aura:if>

                                    </aura:iteration>

                            </ul>

当我 console.log var linkItems 这是返回的内容:


> Proxy {0: {…}, 1: {…}, 2: {…}, 3: {…}, 4: {…}, 5: {…}, 6: {…}, 7: {…}, 8: {…}}

    > [[Handler]]: Object


        [[Target]]: Array(9)

        > 0: {id: 0, label: "Home", active: false}


        1: {id: 1, label: “About”, active: false}


        2: {id: 2, label: “Page3”, active: false}

        
3: {id: 3, label: “Page4”, active: false}

这仍然不起作用。单击时,我需要检查所单击链接的 ID,然后检查它是否有子菜单。


白板的微信
浏览 143回答 2
2回答

慕容708150

使用Array.filter:let&nbsp;itemsWithSubMenu&nbsp;=&nbsp;linkItems.filter(f&nbsp;=>&nbsp;f.subMenu&nbsp;&&&nbsp;f.subMenu.length);

慕后森

我想我现在明白你的问题了,假设这active意味着点击你必须检查活动项目是否有子菜单还假设您可以同时打开多个菜单,并且您想在功能中使用打开菜单的 idanySubmenuOpen = linkItems&nbsp; .map(f => {&nbsp; &nbsp; const submenuOpened = f.id == id && f.subMenu && f.subMenu.length > 0;&nbsp; &nbsp; if(submenuOpened) {&nbsp; &nbsp; &nbsp; // run code for open menu&nbsp; &nbsp; }&nbsp; &nbsp; return submenuOpened&nbsp; }).reduce((acc,curr) => acc | curr, 0)if(!anySubmenuOpen) {// none of the submenus is open,&nbsp; close submenus}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript