2017-10-19 2 views
0

Ich suche, ob es möglich ist, einen md-dialog (Angular Material) von einem iframe zu schließen, dass iframe eine andere Angular App enthält. Der iframe wird in den MD-Dialog geladen, den ich schließen möchte.Schliessen Angular md-dialog von einem iframe

Sehen Sie ein Beispiel:

<md-dialog class="modal-dialog contract-detail"> 
    <md-dialog-content flex="auto"> 
     <div class="modal-header"> 
      <button type="button" class="close" aria-label="Close" ng-click="closeDialog()"> 
       <span aria-hidden="true">&times;</span> 
      </button> 
     </div> 
     <div class="modal-body"> 
     <iframe ng-src="{{urlIframe}}" 
       frameborder="0" 
       allowfullscreen 
       style="position: absolute;top: 0;left: 0;width: 100%;height: 90%;" 
       align="center"> 
     </iframe> 
    </div> 
    </md-dialog-content> 
</md-dialog> 

Die var {{urlIframe}} enthält die Angular App-URL.

+0

Ist 'urlIframe' bewusst, dass es in einem Iframe ist? Können Sie dem Iframe irgendwie einen Rückruf geben? Außerdem scheinen einige abschließende Tags in Ihrem Code zu fehlen. – bracco23

+0

Sorry für die Verwirrung, es scheint, als ich den Beitrag erstellt hatte, gab es einen Fehler mit der Schaltfläche "Code". Es ist jetzt behoben. Ich brauche einen Rückruf von der iframe URL App. Oder ich muss irgendwie den MD-Dialog der App schließen, die in den iFrame geladen wurde. Ich habe 'window.parent.close()' versucht, aber es funktioniert nicht. Danke –

Antwort

1

Sie Winkelmutter Anwendungsbereich des zugreifen können wie,

var $scope = parent.angular.element('.modal-dialog.contract-detail').scope(); 

Und dann rufen Sie einfach die closeDialog Funktion auf $scope würde den Dialog schließen.

+0

Perfekt! Das hat für mich funktioniert, vielen Dank! –

Verwandte Themen