2017-10-19 43 views
0

我在查看是否可以从iframe关闭md对话框(Angular Material),该iframe包含其他Angular App。 iframe被加载到我想要关闭的md对话框中。关闭iframe中的角度md对话框

参见一个例子:

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

的变种{{urlIframe}}包含角应用URL。

+0

'urlIframe'是否意识到它在iframe中?你可以以某种方式提供一个回调的iframe?此外,你似乎错过了代码中的一些结束标签。 – bracco23

+0

对不起,我似乎在创建帖子时出现了“代码”按钮错误。现在已经修复了。我需要从iframe url应用程序进行回调。或者我需要关闭加载到iframe中的应用程序的md对话框。我尝试过'window.parent.close()',但它不起作用。谢谢 –

回答

1

您可以访问父角应用程序的范围一样,

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

然后就是呼吁$scopecloseDialog功能,将关闭对话框。

+0

完美!这对我很有用,非常感谢! –