javascript - 清理 Angular 部分

标签 javascript html angularjs directive

我正在使用 AngularJS 制作一个包含几种不同类型按钮的菜单。根据按钮的类型,html 需要具有不同的特征。此外,当前选择的菜单项需要具有与可用按钮不同的颜色。目前,我正在使用这些困惑的代码:

<div id="navbar" ng-show="navbar.show" ng-mouseenter="navbar.keep()" ng-mouseleave="navbar.release()">

    <div ng-repeat="navSection in navbar.navSections" ng-init="sectionIndex = $index" class="navblock">
        <div ng-repeat="navItem in navSection.navigationItems">
            <div ng-switch on="navItem.function">
                <div ng-switch-when='CategoryNav', ng-click='navbar.navClick(sectionIndex, $index)'>
                    <div info="navItem", ng-if='sectionIndex == navbar.section && $index == navbar.item', id="selected">
                        <a ui-sref="{{navItem.function}}" ng-href="{{navItem.function}}">
                            <div class="navbutton">{{navItem.label}}</div>
                        </a>
                    </div>
                    <div info="navItem", ng-if='sectionIndex != navbar.section || $index != navbar.item', id="notselected">
                        <a ui-sref="{{navItem.function}}" ng-href="{{navItem.function}}">
                            <div class="navbutton">{{navItem.label}}</div>
                        </a>
                    </div>
                </div>

                <div ng-switch-when='StorefrontNav', ng-click='navbar.changeStorefront(navItem.type)'>
                    <div info="navItem", id="notselected">
                        <a ui-sref="{{navItem.function}}" ng-href="{{navItem.function}}">
                            <div class="navbutton">{{navItem.label}}</div>
                        </a>
                    </div>
                </div>

                <div ng-switch-default>
                    <div info="navItem", ng-if='sectionIndex == navbar.section && $index == navbar.item', id="selected">
                        <a ui-sref="{{navItem.function}}" ng-href="{{navItem.function}}">
                            <div class="navbutton">{{navItem.label}}</div>
                        </a>
                    </div>
                    <div info="navItem", ng-if='sectionIndex != navbar.section || $index != navbar.item', id="notselected">
                        <a ui-sref="{{navItem.function}}" ng-href="{{navItem.function}}">
                            <div class="navbutton">{{navItem.label}}</div>
                        </a>
                    </div>
                </div>
            </div>
        </div>
    </div>

</div>

它工作得很好,但我想稍微清理一下。我考虑过制作一个指令并传入不同链接需要工作的函数(例如,navbar.changeStoreFront()),但这似乎有很多额外的代码只是为了清理格式涨一点。有谁知道更好的清理方法吗?

最佳答案

我注意到,使代码更具可读性的最简单方法是将属性放在单独的行上。以此为例:

<ui-gmap-google-map center='{expression}'
                    control='{Object}'
                    zoom='{expression}'
                    dragging='{expression}'
                    refresh='{expression}'
                    options='{expression}'
                    events='{expression}'
                    bounds='{expression}'
                    pan='{string or boolean}'
        >

    <!-- other ui-gmap-directives here -->

</ui-gmap-google-map>

关于javascript - 清理 Angular 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31191592/

相关文章:

html - Firefox 中的 Flexslider 关闭屏幕

javascript - 在 AngularJS 应用程序中设置模块

javascript - Angular.js ng-repeat 跨多个元素

javascript - 使用秒而不是百分比来表达 CSS3 @keyframes

javascript - 为什么 babel-standalone@6 在 Firefox 20 中不起作用?

javascript - Canvas 饼图 : Having ctx. FillText() 出现问题,因此我的标签无法正确显示

jquery - 我如何在这个 li 中获得这个跨度?

javascript - 在 html 中使用 Jquery

javascript - AngularJS 在指令中添加 ng-click

javascript - Next.js 与 Styleguidist 和 Fela (React)