angular bootstrap dropdown error: d.init is not a function
angular bootstrap dropdown error: d.init is not a function
我正在尝试对 angular (https://angular-ui.github.io/bootstrap/#/dropdown) 使用 UI Bootstrap 下拉指令。
我正在复制页面上的示例(对于单个按钮),但出现此错误:
TypeError: d.init is not a function
这是标记:
<div class="album-selector col-sm-12" ng-controller="DropdownController">
<div class="btn-group" dropdown is-open="status.isopen">
<button type="button" class="btn btn-primary dropdown-toggle" dropdown-toggle ng-disabled="disabled">
Button dropdown <span class="caret"></span>
</button>
</div>
<ul class="dropdown-menu" role="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>
</ul>
</div>
这是控制器:
angular.module('DropdownCtrl', ['ui.bootstrap']).controller('DropdownController', function ($scope) {
$scope.items = [
'The first choice!',
'And another choice for you.',
'but wait! A third!'
];
$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;
};
});
注意: 似乎 'd.init' 错误只是通过在 div 上(或文档上的任何位置)写入 'dropdown' 发生, 删除该指令会使错误消失,但下拉菜单仍然不起作用。
注意 2: 我已经在同一页面上使用其他 UI Bootstrap 指令我收到此错误,例如 Carousel、Buttons、Modal 等. 这种情况 仅 与下拉指令有关。
您的控制器名称有冲突。
Angular-UI 使用 'DropdownController' 作为其内部控制器之一。
将控制器名称更改为其他名称,它应该可以工作。通常,对您的控制器命名有某种约定是一种很好的做法。例如,如果您的模块名为 'Dropdown',您可以将 'dd' 添加到其中每个控制器名称的开头。
我正在尝试对 angular (https://angular-ui.github.io/bootstrap/#/dropdown) 使用 UI Bootstrap 下拉指令。
我正在复制页面上的示例(对于单个按钮),但出现此错误:
TypeError: d.init is not a function
这是标记:
<div class="album-selector col-sm-12" ng-controller="DropdownController">
<div class="btn-group" dropdown is-open="status.isopen">
<button type="button" class="btn btn-primary dropdown-toggle" dropdown-toggle ng-disabled="disabled">
Button dropdown <span class="caret"></span>
</button>
</div>
<ul class="dropdown-menu" role="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>
</ul>
</div>
这是控制器:
angular.module('DropdownCtrl', ['ui.bootstrap']).controller('DropdownController', function ($scope) {
$scope.items = [
'The first choice!',
'And another choice for you.',
'but wait! A third!'
];
$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;
};
});
注意: 似乎 'd.init' 错误只是通过在 div 上(或文档上的任何位置)写入 'dropdown' 发生, 删除该指令会使错误消失,但下拉菜单仍然不起作用。
注意 2: 我已经在同一页面上使用其他 UI Bootstrap 指令我收到此错误,例如 Carousel、Buttons、Modal 等. 这种情况 仅 与下拉指令有关。
您的控制器名称有冲突。
Angular-UI 使用 'DropdownController' 作为其内部控制器之一。
将控制器名称更改为其他名称,它应该可以工作。通常,对您的控制器命名有某种约定是一种很好的做法。例如,如果您的模块名为 'Dropdown',您可以将 'dd' 添加到其中每个控制器名称的开头。