Bootstrap:可折叠导航栏无法正常工作

时间:2015-07-09 08:24:26

标签: angularjs twitter-bootstrap-3

我有一个使用自制gulp-angular生成器构建的webapp,它使用bootstrap(带有sass)。

我有一个可折叠的导航栏。当我点击带有3个图标栏的按钮时,菜单不会按预期显示。

我已经测试了我的HTML,它运行正常。有效的小提琴是:http://jsfiddle.net/7tzj3y5n/

代码是:

<nav class="navbar navbar-default navbar-inverse navbar-static-top navbar-inverse-main" role="navigation">
  <div class="container">

    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navigationbar">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <p class="navbar-brand">Merchandising Control</p>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse navbar-menu" id="navigationbar">
        <ul class="nav navbar-nav navbar-right">
        <!-- Airline code label -->
            <li><a href="#">Airline:</a></li>

        <!-- Airline code dropdown -->
            <li class="dropdown" dropdown>
          <a class="dropdown-toggle" dropdown-toggle>{{MainCtrl.getAirlineCode()}} <span class="caret"></span></a>
          <ul class="dropdown-menu dropdown-menu-main">
            <li ng-repeat="airlineCode in MainCtrl.MAIN_UI_CONSTANTS().airlineCodes" ng-click="MainCtrl.setAirlineCode(airlineCode)">
                <a>{{airlineCode.value}}</a>
            </li>
          </ul>
        </li>
        </ul>
    </div> <!-- /.navbar-collapse -->

  </div> <!-- /.container-fluid -->
</nav>

我的安装似乎不正确。

有人可以帮助我吗?

问候。

1 个答案:

答案 0 :(得分:2)

虽然Bootstrap的js在您的HTML元素上使用data-*属性来启用导航栏上的展开/折叠,Angular UI Bootstrap(这是您应该使用的而不是Bootstrap&#39; s当你有一个Angular应用程序时,js的工作方式不完全相同。您可以在Collapse上看到Angular UI Bootstrap的文档,看看它是如何工作的,不过您应该做的是以下内容:

  1. 删除Boostrap的js并包含Angular UI Bootstrap js和一个添加'ui.bootstrap'作为Angular模块的依赖项(如果你还没有)。
  2. 更新HTML以使用Angular UI Bootstrap崩溃,即。如下所示:
  3. &#13;
    &#13;
    <nav class="navbar navbar-default navbar-inverse navbar-static-top navbar-inverse-main" role="navigation" ng-init="navCollapsed = true" >
          <div class="container"> 
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" ng-click="navCollapsed = !navCollapsed">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              <p class="navbar-brand">Merchandising Control</p>
            </div>
        
            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse navbar-menu" collapse="navCollapsed">
                <ul class="nav navbar-nav navbar-right">
                <!-- Airline code label -->
                    <li><a href="#">Airline:</a></li>
        
                <!-- Airline code dropdown -->
                    <li class="dropdown" dropdown>
                  <a class="dropdown-toggle" dropdown-toggle>{{MainCtrl.getAirlineCode()}} <span class="caret"></span></a>
                  <ul class="dropdown-menu dropdown-menu-main">
                    <li ng-repeat="airlineCode in MainCtrl.MAIN_UI_CONSTANTS().airlineCodes" ng-click="MainCtrl.setAirlineCode(airlineCode)">
                        <a>{{airlineCode.value}}</a>
                    </li>
                  </ul>
                </li>
                </ul>
            </div> <!-- /.navbar-collapse -->
        
          </div> <!-- /.container-fluid -->
        </nav>
    &#13;
    &#13;
    &#13;

    此代码实际执行的操作是使用navCollapsed角度变量来控制菜单的展开/折叠。