2017-10-19 23 views
0

Je cherche à savoir s'il est possible de fermer une boîte de dialogue md (matériau angulaire) à partir d'une iframe, que iframe contient une autre application angulaire. L'iframe est chargé dans la boîte de dialogue md que je voudrais fermer.Fermer md-dialogue angulaire à partir d'un iframe

Voir un exemple:

<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> 

Le var {{}} urlIframe contient l'URL de l'application angulaire.

+0

'urlIframe' est-il conscient qu'il se trouve dans une iframe? Pouvez-vous en quelque sorte fournir un rappel à l'iframe? En outre, vous semblez manquer des balises de fermeture dans votre code. – bracco23

+0

Désolé pour la confusion, il semble que lorsque j'ai créé le poste, il y avait une erreur avec le bouton "code". C'est corrigé maintenant. J'ai besoin d'un rappel de l'application url iframe. Ou j'ai besoin de fermer la boîte de dialogue md sur l'application chargée dans l'iframe. J'ai essayé 'window.parent.close()', mais cela ne fonctionne pas. Merci –

Répondre

1

Vous pouvez accéder à la portée de l'application comme angulaire parent,

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

Et puis juste appeler la fonction closeDialog sur $scope, fermerait la boîte de dialogue.

+0

Parfait! Cela a fonctionné pour moi, merci beaucoup! –