2016-06-15 2 views
7

Ich habe einen Dialog mit wenigen Feld zu setzen, das erste Feld ist eine md-Autocomplete, wenn ich ok klicke alle diese Felder werden gereinigt, so möchte ich Fokus in der md-Autocomplete, für das Starten der Daten wieder zu füllen gesetzt .wie Fokus in eckigen MD-Autocomplete gesetzt?

Antwort

8

Versuchen Sie folgendes:

JS:

$scope.setFocus=function(){ 
    setTimeout(function(){ 
      document.querySelector('#autoCompleteId').focus(); 
    },0); 
} 

HTML:

<md-autocomplete .............. md-input-id="autoCompleteId" > 
    <!-- Note the id --> 
</md-autocomplete> 

<input type="button" value="clickMeForFocus" ng-click="setFocus()" /> 

Der Timeout, um sicherzustellen, ist erforderlich, dass die Autocomplete-Komponente zum Zeitpunkt der gemacht wird, Aufruf Fokus.

4

können Sie tun, indem Attribut Hinzufügen

md-Autofokus

ein Beispiel:

<md-autocomplete md-autofocus md-selected-item="selectedItem" md-search-text="searchText" md-items="item in getMatches(searchText)" md-item-text="item.display"> 
    <span md-highlight-text="searchText">{{item.display}}</span> 
</md-autocomplete> 

ref: here

Grüße.

+1

Das funktioniert zum ersten Mal, dass Dialog geöffnet wird, wenn klicken Sie auf OK, und Daten werden gereinigt, Fokus ist verloren und MD-Autofokus funktioniert nicht. Ich habe diese Lösung, wenn der Dialog ausgeblendet ist, nenne ich diese document.getElementById ('Produktname-Eingabe'). QuerySelector ('Eingabe'). Focus(); – mos