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。
我已经正确安装了以下内容:
"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。