Angular UI 和 Bootstrap:点击链接时折叠移动导航栏

Posted

技术标签:

【中文标题】Angular UI 和 Bootstrap:点击链接时折叠移动导航栏【英文标题】:Angular UI & Bootstrap: Collapse Mobile Navbar on Link Click 【发布时间】:2015-05-24 12:59:41 【问题描述】:

通过使用 Angular-UI 的 ui.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】:

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

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

它并没有完全按照您的要求进行,因为它没有触发点击事件的折叠。但它确实会触发每次状态更改的崩溃,为此目的是相同的。

【讨论】:

以上是关于Angular UI 和 Bootstrap:点击链接时折叠移动导航栏的主要内容,如果未能解决你的问题,请参考以下文章

Angular UI Bootstrap - 模态不会在第一次点击时弹出

angular-ui-bootstrap 模态框可以弹出多个吗

angular-ui-bootstrap model 模态框出现的位置怎么调整

Angular ui bootstrap - 无法注入解析功能

单击外部时隐藏Angular UI Bootstrap弹出窗口

angular-ui-bootstrap 日期选择器和屏蔽输入