簡體   English   中英

動態Angular.js菜單

[英]Dynamic Angular.js menu

我正在嘗試使用anuglar.js和bootstrap構建動態菜單。 此菜單需要具有下拉功能。 我已經掌握了基本菜單,但是現在我試圖添加一個下拉鏈接,但我無法正確生成選項。

我的菜單項有一個變量,如下所示:

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菜單的下拉菜單,而false時只生成一個常規菜單項。

到目前為止,這是我的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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM