Uib-Dropdown 在 HTML 视图的正文中不起作用

Uib-Dropdown Does not work in Body of HTML View

我已经正确安装了以下内容:

"ui-bootstrap": "0.12.2", "ngAnimate": "1.5.5", "AngularJs": "1.5.5

在 html 视图的正文标记中创建下拉菜单时,我没有收到任何可见结果。我在控制台和网络分析器中都没有收到任何错误消息。此外,所有其他 angularJS 和代码在视图中都能完美运行,因此外部设置没有任何问题。这是问题中的 HTML:

 <div class="btn-group" uib-dropdown dropdown-append-to-body>
  <button id="btn-append-to-body" type="button" class="btn btn-primary" uib-dropdown-toggle>
    DropDown <span class="caret"></span>
  </button>
  <ul class="dropdown-menu" uib-dropdown-menu role="menu" aria-labelledby="btn-append-to-body">
    <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>

这是问题中的 JS:

 var myApp = angular.module('app', ['ui.bootstrap','ngAnimate']);
 myApp.controller('Controller', ['$scope', '$http', '$log', function($scope, $http, $log) {

 $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;
};

$scope.appendToEl = angular.element(document.querySelector('#dropdown-long-content'));
}]); 

从 ui-bootstrap 0.14.0 开始,他们需要 uire 指令的 uib- 前缀。看起来您使用的是早期版本,因此您应该通过删除 uib- 前缀来显示指令。换句话说,"uib-dropdown-menu" 变成 "dropdown-menu" 等等

要么,要么使用最新版本的ui-bootstrap。

来源:bootstrap migration guide for prefixes