【问题标题】:angular ui-bootstrap dropdown is always initial open角度 ui-bootstrap 下拉菜单始终初始打开
【发布时间】:2016-03-09 11:11:31
【问题描述】:

我在我的 Angular 项目中使用 ui-boostrap,但遇到了一个奇怪的问题:我的下拉菜单总是初始打开的。我也尝试通过控制器强制关闭状态,但这也不起作用。

这是我的下拉菜单导航:

<nav class="navbar navbar-inverse navbar-fixed-top">
  <div class="container-fluid">
  <!-- Brand and toggle get grouped for better mobile display -->
  <div class="navbar-header">
    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
      <span class="sr-only">Toggle navigation</span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </button>
    <a class="navbar-brand" href="#/home">
        <img width="32" alt="Brand" src="assets/img/Blitz_blue_140.png">
    </a>
  </div>

  <!-- Collect the nav links, forms, and other content for toggling -->
  <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
    <ul class="nav navbar-nav">
      <li uib-dropdown>
        <a id="project-dropdown" uib-dropdown-toggle>
          Projects <span class="caret"></span>
        </a>
        <ul uib-dropdown-menu aria-labelledby="project-dropdown">
          <li ng-hide="project.name == 'Inbox'" ng-repeat="project in projects">
            <a ng-href="#/tasks/{{project.projectid}}">
                <i class="fa fa-diamond"></i> {{project.name}} 
            </a>
          </li>
        </ul>
      </li>
      <li><a href="#">+ Project</a></li>
    </ul>
    <ul class="nav navbar-nav navbar-right">
        <li uib-dropdown>
          <a id="user-dropdown" uib-dropdown-toggle role="button" is-open="false" aria-expanded="false">
            {{user.username}} <span class="caret"></span>
          </a>
          <ul uib-dropdown-menu aria-labelledby="user-dropdown" role="menu" >
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a ng-click="logout()">Logout</a></li>
          </ul>
        </li>
      </ul>
  </div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->

我还使用 ui-bootstrap 文档中的代码 sn-p 对其进行了测试,并遇到了同样的问题:

<div class="btn-group pull-right" uib-dropdown>
      <button id="split-button" type="button" class="btn btn-danger">Action</button>
      <button type="button" class="btn btn-danger" uib-dropdown-toggle>
        <span class="caret"></span>
        <span class="sr-only">Split button!</span>
      </button>
      <ul uib-dropdown-menu role="menu" aria-labelledby="split-button">
        <li role="menuitem"><a href="#">Action</a></li>
        <li role="menuitem"><a href="#">Another action</a></li>
        <li role="menuitem"><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li role="menuitem"><a href="#">Separated link</a></li>
      </ul>
    </div>

我正在使用 angular 1.5.0 和最新版本的 ui-bootstrap

【问题讨论】:

    标签: javascript angularjs angular-ui-bootstrap


    【解决方案1】:

    粘贴到您的 html is-open="status.isopen" 和您的控制器中:

    $scope.status.isopen = !$scope.status.isopen;
    

    默认设置为假:

    $scope.status.isopen = false;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多