javascript - 动态 Angular.js 菜单

标签 javascript jquery html css angularjs

我正在尝试使用 anuglar.js 和 Bootstrap 构建动态菜单。此菜单需要具有下拉功能。我已经获取了基本菜单,但现在我正在尝试添加下 zipper 接,但我无法获得正确生成的选项。

我有一个带有菜单项的变量,如下所示:

var nav = [

    {
        display: 'Home', 
        link: '#/',
        drop: false,
    },
    {
        display: 'Categories', 
        link: '#/', 
        drop: true,
        sub: [
            {
                display: 'Sub 1',
                link: '#/'
            },
            {
                display: 'Sub 2',
                link: '#/'
            },
            {
                display: 'Sub 3',
                link: '#/'
            }
        ]
    }

];

droptrue 时,我想要一个下拉菜单来生成 sub 项,而当它为 时,只是一个常规菜单项>假

到目前为止,这是我的 HTML:

<ul class="nav navbar-nav">
    <li class="dropdown" ng-repeat="nav in nav" ng-if="drop == nav.drop">
      <a class="dropdown-toggle" data-toggle="dropdown" href="{{nav.link}}">
        {{nav.display}}
        <b class="caret"></b>
      </a>
      <ul class="dropdown-menu">
        <li ng-repeat="sub in nav.sub"><a href="{{sub.link}}">{{sub.display}}</a></li>
      </ul>
    </li>
    <li ng-if="drop != nav.drop" ng-repeat="nav in nav">
      <a href="{{nav.link}}">{{nav.display}}</a>
    </li>
</ul>

现在一切都作为正常链接生成。

最佳答案

我认为 ng-if 是问题所在。改变这个:

ng-if="drop == nav.drop"

为此:

ng-if="nav.drop"

还有这个:

ng-if="drop != nav.drop"

为此:

ng-if="!nav.drop"

顺便说一句,我同意评论者的观点,即 ng-repeat="nav in nav" 令人困惑。

编辑:

如何获取一个列表而不是两个:

<ul class="nav navbar-nav">
  <li class="dropdown" ng-repeat="nav in nav">
    <a ng-if="!nav.drop" href="{{nav.link}}">{{nav.display}}</a>        
    <a ng-if="nav.drop" class="dropdown-toggle" data-toggle="dropdown" href="{{nav.link}}">
      {{nav.display}}
      <b class="caret"></b>
    </a>
    <ul ng-if="nav.drop" class="dropdown-menu">
      <li ng-repeat="sub in nav.sub"><a href="{{sub.link}}">{{sub.display}}</a></li>
    </ul>
  </li>
</ul>

关于javascript - 动态 Angular.js 菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29872848/

相关文章:

javascript - 如何在 ES6 中添加带连字符的填充零且最大数字长度为 10

javascript - 过滤一个或多个匹配的字符串以减少数据集

javascript - jQuery:如何检测仅在某些元素上按下箭头键

javascript - 正则表达式不应该在链接标签中运行

javascript - 如何在不点击提交按钮的情况下显示值(value)

javascript - jQuery - 将 onHover 处理程序添加到区域元素

javascript - 如何循环遍历对象并替换键中的空格?

jquery - 如何测试浏览器是否支持原生占位符属性?

javascript - 在javascript中循环 "history"?

javascript - 为多个客户端渲染 html View