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