有没有办法从ng-click指令运行dropdownToggle? 我正在使用ngMobile来避免延迟点击触摸设备上的“操作”按钮。
<div class="btn-group">
<a class="btn dropdown-toggle">
Actions
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a>Action 1</a></li>
<li><a>Action 2</a></li>
</ul>
</div>
菜单也有问题,如果我不保留Action1 / Action2,则不会关闭 压了很久。 (比平时更长的时间)。
答案 0 :(得分:2)
看起来我找到了一个解决方案(不是我认为最好的解决方案),但它确实有效。 如果有人有更好的,请分享。
打开下拉列表会在下拉列表元素中添加一个“open”类,因此为了使用ng-click打开它,我需要添加此类。
我知道这是一个临时解决方案,但没有找到更好的解决方案。
以下是代码:
<div class="btn-group" ng-class="{open: opened}" ng-click="opened=!opened" ng-init="opened=false">
<a class="btn dropdown-toggle">
Actions
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a ng-click="$location.path('/some/addr')">Action 1</a></li>
</ul>
</div>
关于点击关闭菜单:这可能是由我的html错误引起的(没有正确关闭某些标签)。纠正后,问题消失了。从源代码我看到dropDown菜单在click&amp; amp;正在运行$location.path()
答案 1 :(得分:2)
当$location.path(newPath)
下拉表单没有关闭时,我遇到了类似的问题。如果您使用未压缩的ui-bootstrap文件,我的解决方案是
angular.module('ui.bootstrap.dropdownToggle', [])
.directive('dropdownToggle', ['$document', '$location', function($document, $location)
更改
scope.$watch('$location.path', function() {
closeMenu();
});
到
scope.$watch('$routeChangeStart', function() {
closeMenu();
});