使用AngularJS的下拉列表中的Bootstrap输入字段

时间:2014-10-19 12:34:34

标签: angularjs twitter-bootstrap

我有一个使用Bootstrap的下拉菜单,里面有一个输入字段。每次单击输入字段时,下拉菜单都会消失。我怎么能阻止它?

顺便说一下,我正在使用AngularJS,所以jQuery方式可能不适合这里。

<div class="dropdown">
    <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
        <span class="pull-left">{{ trans('text.choose_user') }}</span> 
        <span class="pull-right"><i class="icon-order-table"></i></span>
    </button>
    <ul class="dropdown-menu" role="menu">
        <li role="presentation" class="basic-padding"><a role="menuitem" tabindex="-1" href="#">{{ trans('text.guest') }}</a></li>
        <li class="basic-padding">
            <div class="input-group">
                <input type="search" class="form-control" placeholder="{{ trans('text.search') }}">
                <span class="input-group-btn">
                    <button class="btn btn-default">
                        <i class="icon-search"></i>
                    </button>
                </span>
            </div>
        </li>
    </ul>
</div>

2 个答案:

答案 0 :(得分:12)

感谢@Rob J,我提出了一个解决方案,但并不像他提到的那样:

<input type="search" class="form-control" placeholder="{{ trans('text.search') }}" ng-click="$event.stopPropagation()">

答案 1 :(得分:2)

你应该尝试使用角度ui-select。这是github

的链接

链接到plunker demo

浏览文档,有几个选项可以配置ui-select。

配置ui-select

的示例代码
<ui-select ng-model="person.selected" theme="bootstrap" style="min-width: 300px;">
  <ui-select-match placeholder="Select a person...">{{$select.selected.name}}</ui-select-match>
  <ui-select-choices repeat="person in people | propsFilter: {name: $select.search}">
    <div ng-bind-html="person.name | highlight: $select.search"></div>
  </ui-select-choices>
</ui-select>