2014-10-19 14 views
7

Mam menu rozwijane przy użyciu Bootstrap, a wewnątrz niego znajduje się pole wprowadzania. Za każdym razem, gdy klikam pole wprowadzania, menu rozwijane znika. Jak mógłbym to zatrzymać?Pole wprowadzania Bootstrap w rozwijanym menu z AngularJS

Nawiasem mówiąc, używam AngularJS, więc sposób jQuery prawdopodobnie nie będzie tu pasował.

<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

spróbuj dodać ng -click = "$ event.preventDefault()" do elementu wejściowego. –

Odpowiedz

2

Powinieneś spróbować użyć kątowego ui-select. Oto link github

Link do plunker demo

przejść przez dokumentacji i istnieje kilka opcji do skonfigurowania ui-select.

Przykładowy kod skonfigurować 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> 
11

Dzięki @Rob J, mam wymyślić rozwiązania, a nie dokładnie tak, jak co wspomniał jednak:

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

oznaczyć to jako odpowiedź - działa i może być pomocne dla innych osób (jak ja :)) –

+0

Działa jak urok z ui-bootstrap. Dzięki –

Powiązane problemy