2015-06-12 13 views

risposta

10

paper-dialog eredita la Polymer.IronOverlayBehavior, che ha le iron-overlay-opened e iron-overlay-closed eventi.

<paper-dialog 
    on-iron-overlay-opened="_myOpenFunction" 
    on-iron-overlay-closed="_myClosedFunction"></paper-dialog> 

https://elements.polymer-project.org/elements/iron-overlay-behavior?active=Polymer.IronOverlayBehavior

+0

Essi stanno lavorando per migliorare quella. Al momento, consiglio di esplorare i Behaviors collegati nella parte inferiore della pagina di un componente, in quanto il componente erediterà qualsiasi proprietà o metodo di tali comportamenti. Presto saranno in grado di includerli direttamente nella documentazione del componente, il che dovrebbe rendere gli eventi come questi più facili da trovare. – Zikes

+0

Sì, sono d'accordo con te, grazie mille @Zikes –

+5

Grazie, @Zikes. Stranamente, non ho potuto farlo funzionare. Ho definito una funzione indipendente che ho trasmesso come sopra, ma la richiamata non sparava. Ho fatto in modo che funzionasse usando il metodo, 'addEventListener ('iron-overlay-closed')'. –

2

Anche questo è argomento vecchio, c'è ancora 1 cosa che la gente dovrebbe conoscere ed essere consapevoli di:

vivamente si consiglia di controllare anche event.target all'interno della vostra funzione listener. Ad esempio, se hai un altro elemento che utilizza iron-overlay all'interno di paper-dialog, la chiusura di tali elementi attiverà l'ascoltatore su paper-dialog. (puoi provarlo con vaadin-date-picker).

Quindi:

<paper-dialog on-iron-overlay-closed="_myClosedFunction"></paper-dialog> 

e poi _myClosedFunction:

_myClosedFunction(e) { 
    if(e.target.nodeName == "PAPER-DIALOG") { 
    //...toDo stuff... 
    } 
} 

Ora si ha la garanzia che ogni volta che solo carta-finestra è chiusa, il codice verrà eseguito

Problemi correlati