2017-08-21 2 views
1

Ich benutze Ionic 2 mit Select2Module (ng2-select2 package) für Autocomplete-Input-Drop-Down.Select2 wird nicht ausgeblendet, wenn Hardware-Taste in Ionic 2 zurück gedrückt wird

Wenn ich auf die Eingabe klicke, um das Dropdown-Menü für die automatische Vervollständigung von select2 anzuzeigen, wird die Tastatur angezeigt, wenn ich die Optionen eingeben und erweitern möchte. Wenn ich auf die mobile Schaltfläche zurück klicke, verschwindet die Tastatur, aber nicht das Dropdown. Und wenn ich den Knopf wieder drücke, gehe ich zurück zum Bildschirm, aber das Dropdown ist immer noch da. Hier

ist ein Beispiel dafür, was passiert

Wenn ich den Eingang für die Show das Drop-down drücken und zeigen Sie die Optionen mit der Tastatur: enter image description here

Wenn ich drücken Sie die Taste zurück und die Tastatur das Drop-down verschwindet aber nicht: enter image description here

Wenn ich die Taste wieder drücken Sie erneut ein nd ich Rückkehr zur vorherige Seite aber der Drop-Down ist immer noch da: enter image description here

Wie kann ich die Drop-down, wenn der Benutzer drücken Sie die Taste wieder verstecken? Was passiert select2 Komponente?

Ich versuche, dieses Problem mit dem folgenden Code in meinem app.component.ts zu lösen:

platform.registerBackButtonAction(() => { 
     const overlayView = this.app._appRoot._overlayPortal._views[0]; 
     if(overlayView && overlayView.dismiss){ 
      overlayView.dismiss(); 
     } else { 
      this.app.goBack(); 
     } 
     }) 

aber nicht funktioniert. In der Theorie mit diesem Code sollte die Zurück-Schaltfläche modale Popups ausblenden, aber es funktioniert nicht.

+0

Ist das "modales Popup" oder "Seite"? – Sampath

+0

@Sampath ist keine 'Seite'. Aber ich weiß nicht, ob es ein "Modal Popup" ist. Ich habe meine Frage mit einem Code aktualisiert. – Dvex

+0

Wie löst man das Öffnen aus, ist es die Eingabe? – Vega

Antwort

0

Sie können versuchen, wie unten gezeigt.

app.component.ts

this.platform.registerBackButtonAction(() => { 
    try { 
    this.viewController.dismiss() 
    } 
    catch(e) { 
    ... no overlay component open 
    } 
}) 

Wenn oben werden Sie Tonnen solutions here erfahren Sie nicht arbeiten können.

Verwandte Themen