1

有什么方法可以从 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,它不会在点击时关闭。(比通常的水龙头长得多)。

4

2 回答 2

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();
});
于 2013-07-10T18:23:52.633 回答
2

看起来我找到了一个解决方案(不是我认为的最好的),但它有效。如果有人有更好的,请分享。

打开下拉菜单会向下拉菜单元素添加一个“打开”类,因此为了使用 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 中的错误(未正确关闭某些标签)引起的。改正后问题消失。从源代码我看到下拉菜单在点击和运行时都关闭$location.path()

于 2013-05-21T19:55:48.323 回答