DropDown在点击时不会关闭

时间:2015-07-30 10:57:05

标签: javascript angularjs drop-down-menu

我遇到了问题,如果您看到Plunker link,我不知道当我点击指令时如何自动关闭我的下拉菜单。

任何人都可以提出解决这个问题的建议吗?

由于

1 个答案:

答案 0 :(得分:1)

根据我的评论,这是一个解决方案:

http://plnkr.co/edit/2UG1Kj2l3fuVgYXaOB6d?p=preview

我有一个坐在身上的自定义指令

<body class="container" ng-controller="mainCtrl" dropdown-listener>

在窗口上侦听点击事件。

它会触发dropdownDirective正在侦听的事件:

myApp.directive('dropdownListener', function ($window, $rootScope) {
            return {
                restrict: 'A',

        link: function(scope, element, attr) {
          var w = angular.element($window);

          w.bind('click', function(){
            $rootScope.$broadcast('dropdown:close');
          });
                }
            }
        });

dropdownDirective

$scope.$on('dropdown:close', function (event, data) {
    $scope.$apply(function() {
      if($scope.open) { //only close when it is open
        $scope.open = !$scope.open; //quick and dirty solution - withouth apply it didn't work. Maybe you could investigate further
      }
      });
  })