Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 下拉菜单关闭焦点_Angularjs_Drop Down Menu_Angular Ui - Fatal编程技术网

Angularjs 下拉菜单关闭焦点

Angularjs 下拉菜单关闭焦点,angularjs,drop-down-menu,angular-ui,Angularjs,Drop Down Menu,Angular Ui,我想触发下拉菜单打开输入字段上的焦点。 但每次我集中注意力时,它就会打开,然后突然关闭。 使用按钮切换,一切正常。 下面是一个例子: 这里是HTML <div class="input-group"> <input type="text" class="form-control" ng-focus="show($event)"> <div class="input-group-addon"><i class="fa fa-fw fa-

我想触发下拉菜单打开输入字段上的焦点。 但每次我集中注意力时,它就会打开,然后突然关闭。 使用按钮切换,一切正常。 下面是一个例子:

这里是HTML

<div class="input-group">
    <input type="text" class="form-control" ng-focus="show($event)">

    <div class="input-group-addon"><i class="fa fa-fw fa-calendar"></i></div>
</div>
<a class="btn btn-default" ng-click="toggleDropdown($event)">toggle</a>

<div class="dropdown" dropdown is-open="model.open">
    <ul class="dropdown-menu" role="menu">
        Content
    </ul>
</div>

之所以会发生这种情况,是因为单击事件也会在输入中触发,从而阻止其默认行为

JAVASCRIPT

angular.module('demo', ['ui.bootstrap'])

  .controller('DemoController', function($scope) {

    $scope.open = false;

    $scope.prevent = function($event) {
      $event.stopPropagation();
      $event.preventDefault();
    };

    $scope.focus = function($event) {
      $scope.prevent($event);
      $scope.open = true;
    };

    $scope.toggle = function($event) {
      $scope.prevent($event);
      $scope.open = !$scope.open;
    }

  });
HTML

  <input type="text" check-if-lost-focus ng-click="prevent($event)"  ng-model="name" name="name" ng-focus="focus($event)">
    <div class="btn btn-default" ng-click="toggle($event)">Toggle</div>

    <div class="dropdown" dropdown is-open="open">
      <ul class="dropdown-menu" role="menu">
          Content
      </ul>
  </div>

切换
    内容

从快速查看中,我想说,当您单击输入时-它获得焦点-当它获得焦点时,它打开模态-模态获得焦点-输入失去焦点-模态关闭,这就是我删除
ng blur=“hide($event)”的原因。
。现在它还没有隐藏事件看起来不错,但是由于某种原因,如果在我的例子中包装为指令类型
E
,那么我得到的
[$rootScope:inprog]$digest已经在进行中了
您能创建一个plunker并复制这个问题吗?
  <input type="text" check-if-lost-focus ng-click="prevent($event)"  ng-model="name" name="name" ng-focus="focus($event)">
    <div class="btn btn-default" ng-click="toggle($event)">Toggle</div>

    <div class="dropdown" dropdown is-open="open">
      <ul class="dropdown-menu" role="menu">
          Content
      </ul>
  </div>