首页 文章

Angular UI和Bootstrap:折叠链接上的移动导航栏

提问于
浏览
2

通过使用Angular-UI的ui.bootstrap我有一个正常运行的bootstrap导航栏 . 对于移动导航栏,我希望在单击链接时折叠导航栏 . 切换按钮按预期运行,但我无法使用ng-click =“isCollapsed =!isCollapsed”来处理导航链接 .

<div class="navbar navbar-default navbar-fixed-top" ng-controller="NavbarCtrl">
  <div class="container">
    <div class="navbar-header">
      <button class="navbar-toggle" type="button" ng-click="isCollapsed = !isCollapsed">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a href="/" class="navbar-brand">App</a>
   </div>
   <div collapse="isCollapsed" class="navbar-collapse collapse" id="navbar-main">
      <ul class="nav navbar-nav">
        <li ng-repeat="item in menu" ng-class="{active: isActive(item.link)}">
           <a ng-href="{{item.link}}" ng-click="isCollapsed = !isCollapsed">{{item.title}}</a>
        </li>
      </ul>
    </div>
  </div>
</div>

在我的控制器中,适用的代码是:

$scope.isCollapsed = true;

1 回答

  • 0

    我遇到过同样的问题 . 不确定这是否是最好的解决方案,但我只是在主控制器中添加了这个:

    $rootScope.$on('$stateChangeStart', function(event, toState){
        $scope.navbarCollapse = true;
    });
    

    它并不完全符合您的要求,因为它不会触发点击事件的崩溃 . 但它确实引发了每个州变革的崩溃,为此目的是相同的 .

相关问题