angularjs-菜单

<accordion close-others="true">
        <accordion-group class="operactr-column" ng-repeat="item in menuItems track by $index" is-open="open[item.id]" ng-init="open[item.id] = false">
        //此处的变量初始化必须有,否则循环当中会把open[item.id]作为局部变量
            <accordion-heading>
                <ul>
                    <li>  
                        <!--ng-click="iconToggle('userManage')"-->
                        <span class="toggleIcon" ng-class="{'iconBottom':isOpenUserManage,'iconRight':!isOpenUserManage}"></span>
                        <!--<span ng-class="'fa ' + item.icon"></span>-->
                        <span class="icon2"></span>
                        <span>{{item.name}}</span>
                    </li>
                </ul>
            </accordion-heading>
            <ul class="navigation" ng-if="item.children.length > 0">
                <li ng-onmouseover="this.style.backgroundColor='red'" style="padding-left: 60px;" ng-class="{'selected': (selectedPage == (subItem.serviceName + subItem.queryParams))}" ng-init="(selectedPage == (subItem.serviceName + subItem.queryParams))?(open[item.id] = true):''"  ng-repeat="subItem in item.children track by $index" ng-if="subItem.isEnabled">
                //selectedPage == (subItem.serviceName + subItem.queryParams)为true时表明菜单为选中状态。此处利用了 &&  的短路特性,给open[item.id]赋值为true,标记菜单的展开状态
                //ng-class="{'selected': (selectedPage == (subItem.serviceName + subItem.queryParams)) && (open[item.id] = true)}"纠正一下,这种写法有bug,改成上面那种就可以了
                    <!--<span ng-class="'fa ' + subItem.icon"></span>-->
                    <span class="icon3" ng-class="{'active': selectedPage == subItem.serviceName + subItem.queryParams}"></span>
                    <a ng-class="{'selected': selectedPage == subItem.serviceName + subItem.queryParams}" ng-href="#/inteSearch/list/{{subItem.serviceName + subItem.queryParams}}" title="{{subItem.name}}" ng-click="selectPage(subItem.serviceName + subItem.queryParams)">{{subItem.name}}</a>
                </li>
            </ul>
        </accordion-group>
    </accordion>
/**
     * 选中菜单
     */
    $scope.selectPage = function(itemName){
        $scope.selectedPage = itemName;
    }
    /**
     * 刷新页面时选中菜单
     */
    function initSelectedPage(){
        var url = $location.url();
        if(url == "/inteSearch/admin"){
            $scope.selectedPage = "admin";
        }else{
            $scope.selectedPage = url.split("/")[3];
        }
    }

说明一下,这是一个二级菜单。默认为收起状态,选中的菜单项高亮显示。并且该项的父级为展开状态。写的很乱,意思表达不出来,意会吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值