【问题标题】:Angular JS and Bootstrap - Setting multiple sub menus within submenusAngular JS 和 Bootstrap - 在子菜单中设置多个子菜单
【发布时间】:2014-08-31 21:35:51
【问题描述】:

首先让我说我正处于学习使用 Angular 的初级阶段。我已经进行了多次搜索,并且看到了多个设置带有子菜单的菜单的示例,但是我没有找到在子菜单中包含子菜单的示例。

您可能已经注意到,我也不太擅长写问题。让我继续以代码和小提琴为例。希望有人能解释为什么这不起作用以及我的逻辑哪里出了问题。

JavaScript

var App = angular.module("rcfdto",[]);
App.controller("menuController", ['$scope', function($scope){

$scope.locs = [

                            {

                                            name: "Menu Option #1",

                                            link: "#OP1",

                                            id: "Option1",

                                            submenu: null

                            },

                            {

                                            name: "Menu Option #2",

                                            link: "#OP2",

                                            id: "Option2",

                                            submenu: [

                                                            {

                                                                            name: "Submenu Option 1",

                                                                            link: "#SOP1",

                                                                            id: "SubOption1",

                                                                            subsubmenu: null

                                                            },

                                                            {

                                                                            name: "Submenu Option 2",

                                                                            link: "#SOP2",

                                                                            id: "SubOption2",

                                                                            subsubmenu: null

                                                            },

                                                            {

                                                                            name: "Submenu Option 3",

                                                                            link: "#SOP3",

                                                                            id: "SubmenuOption3",

                                                                            subsubmenu: [

                                                                                            {

                                                                                                            name: "SubSubMenu Option 1",

                                                                                                            link: "#SSOP1",

                                                                                                            id: "SubSubmenuOption1"

                                                                                            },

                                                                                            {

                                                                                                            name: "SubSubMenu Option 2",

                                                                                                            link: "#SSOP2",

                                                                                                            id: "SubSubmenuOption2"

                                                                                            }

                                                                            ]

                                                            }

                                            ]

                            },

                            {

                                            name: "Menu Option #3",

                                            link: "#OP3",

                                            id: "Option3",

                                            submenu: [

                                                            {

                                                                            name: "Submenu Option 4",

                                                                            link: "#SOP4",

                                                                            id: "SubmenuOption4",

                                                                            subsubmenu: [

                                                                                            {

                                                                                                            name: "SubSubMenu Option 3",

                                                                                                            link: "#SSOP3",

                                                                                                            id: "SubSubmenuOption3"

                                                                                            }

                                                                            ]

                                                            },

                                                            {

                                                                            name: "Submenu Option 5",

                                                                            link: "#SOP5",

                                                                            id: "SubmenuOption5",

                                                                            submenu: null

                                                            }

                                            ]

                            }

];

}]);

HTML

<body ng-app="rcfdto">

<div class="menu container" ng-controller="menuController">

<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">

  <li ng-repeat="loc in locs" ng-class="{'dropdown-submenu' : loc.submenu && loc.submenu.length}">

    <a href="{{loc.link}}" id="{{loc.id}}">{{loc.name}}</a>

      <ul ng-if="loc.submenu && loc.submenu.length" class="dropdown-menu">

        <li ng-repeat="subloc in loc.submenu">

          <a href="{{subloc.link}}" id="{{subloc.id}}">{{subloc.name}}</a>

            <ul ng-if="subloc.subsubmenu && subloc.subsubmenu.length" class="dropdown-menu">

              <li ng-repeat="subsubloc in subloc.subsubmenu">

                <a href="{{subsubloc.link}}" id="{{subsubloc.id}}">{{subsubloc.name}}</a>

              </li>

            </ul>

        </li>

      </ul>

  </li>

</ul>

CSS

.menu {

            position:relative;

}

.menu > .dropdown-menu {

            position:static;

            display:block;

}

My Fiddle

【问题讨论】:

    标签: angularjs twitter-bootstrap


    【解决方案1】:

    您忘记在菜单上设置正确的类别。

    <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
      <li ng-repeat="loc in locs" ng-class="{'dropdown-submenu' : loc.submenu && loc.submenu.length}">
        <a href="{{loc.link}}" id="{{loc.id}}">{{loc.name}}</a>
          <ul ng-if="loc.submenu && loc.submenu.length" class="dropdown-menu">
    
    <!-- ng-class added in this line -->
                <li ng-repeat="subloc in loc.submenu" ng-class="{'dropdown-submenu' : subloc.subsubmenu && subloc.subsubmenu.length}">
                  <a href="{{subloc.link}}" id="{{subloc.id}}">{{subloc.name}}</a>
                    <ul ng-if="subloc.subsubmenu && subloc.subsubmenu.length" class="dropdown-menu">
                      <li ng-repeat="subsubloc in subloc.subsubmenu">
                        <a href="{{subsubloc.link}}" id="{{subsubloc.id}}">{{subsubloc.name}}</a>
                      </li>
                    </ul>
                </li>
              </ul>
          </li>
        </ul>
    

    我建议将“subsubmenu”重命名为“submenu”,并从这个混乱的结构中提取指令。

    【讨论】:

    • 这解释了很多。感谢您的帮助,我仍在弄清楚这些东西并尝试对其进行正面或反面,并将其用作学习的项目。我还将进行其他更改。再次感谢您
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 2013-11-15
    相关资源
    最近更新 更多