Angular Bootstrap下拉切换不起作用

时间:2014-12-05 18:02:54

标签: javascript angularjs drop-down-menu angularjs-directive angular-bootstrap

我有一个Angular Bootstrap下拉菜单似乎没有切换下拉列表。点击后,没有任何显示,虽然我可以在inspect元素上看到列表项。

HTML:

        <div ng-controller="DropdownCtrl">
            <!-- Simple dropdown -->
            <span class="dropdown" dropdown on-toggle="toggled(open)">
              <a href class="dropdown-toggle {{ disableDropdown }}" dropdown-toggle>
                <i class="fa fa-align-justify"></i>
              </a>
              <ul class="dropdown-menu port-dropdown-menu">
                <li>test</li>
                <li>test2</li>
                <li ng-repeat="choice in dropdown.items">
                    <a ui-sref="portfolio.port({portId: choice.id})">{{ choice.title }}</a>
                </li>
              </ul>
            </span>
        </div>

DropdownCtrl:

'use strict';

angular.module('portfolioManager').controller('DropdownCtrl', function ($scope,         portfolioCreateService) {

$scope.dropdown = {};

$scope.dropdown.items = portfolioCreateService.getDropdownTabs();

$scope.disableDropdown = portfolioCreateService.getDropdownClass();

$scope.$on('dropdownStatus', function(){
  $scope.disableDropdown = portfolioCreateService.getDropdownClass();
  console.log($scope.dropdown.items);
});

$scope.status = {
  isopen: false
};

$scope.toggled = function(open) {
  $log.log('Dropdown is now: ', open);
};

$scope.toggleDropdown = function($event) {
  $event.preventDefault();
  $event.stopPropagation();
  $scope.status.isopen = !$scope.status.isopen;
};

});

2 个答案:

答案 0 :(得分:1)

我使用角度低于1.3.0的低版本,然后<a href class="dropdown-toggle {{ disableDropdown }}" dropdown-toggle>绑定两个下拉切换指令。然后当您单击元素时,第一个指令打开下拉列表,然后第二个指令立即关闭它。

从元素中删除属性dropdown-toggle,它应该可以正常工作。

答案 1 :(得分:0)

我还遇到了Original Bootstrap下拉列表的问题(也导入了Angularjs UI Bootstrap),但是它类似于:当我在导航栏中使用它时,只有2次点击触发下拉菜单,就像Bootstrap的官方演示一样页。例如:

  <ul class="nav navbar-nav">
    <li class="active"><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
    <li class="dropdown">
      <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
      <ul class="dropdown-menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a></li>
        <li class="divider"></li>
        <li><a href="#">One more separated link</a></li>
      </ul>
    </li>
  </ul>

只有在我删除data-toggle="dropdown"后,原始Bootstrap下拉列表才能在Navbar中正常运行......也许是因为data-toggle="dropdown"还会让Angularjs UI Bootstrap绑定下拉切换指令。