2017-06-29 199 views
0

请原谅我的无知,但我是angularjs中的新成员,我想显示一个弹出窗口,其中包含2个按钮(确定并取消) 确定:关闭弹出窗口和浏览器 取消:关闭弹出窗口angularjs模态模式对话框关闭

我使用的模式,对话框显示弹出式 我的HTML代码是:

<modal-dialog show='dialogShown' dialog-title='My Dialog'> 
      <p></p> 
      <p>Are you sure ?</p> 
      <button ng-click="closeWindow()">OK</button> 
      <button ng-click="closeDialog()">Cancel</button> 

</modal-dialog> 

我的控制器:

var app = angular.module('MyModule', []); 
app.controller('MyCtrl', function ($scope,myservice) { 

    $scope.dialogShown = false; 
    $scope.showDialog = function(){ 
     $scope.dialogShown = true; 
    } 

    $scope.closeWindow = function(){ 
     // I need to close the popup AND the window 
    } 

    $scope.closePopup = function(){ 
     // I need to close the popup 
    }  
} 

在此先感谢您的帮助。

+0

通过窗口你的意思是浏览器选项卡? – Icycool

+0

是的,我的意思是浏览器选项卡 – anonymouslyGeek

+0

您是否创建了模态对话框指令? 不是原生的html标签,因此您必须像htis一样自行创建指令:http://adamalbrecht.com/2013/12/12/creating-a-simple-modal-dialog-directive- in-angular-js /或尝试使用Bootstrap模式或Angular Material库 – Alburkerk

回答

0

如果您只需要关闭浏览器的当前选项卡,则应该使用$window.close()函数。

有关此功能的更多信息,请阅读window.close()$window文档。

编辑:就像它在Mozilla Doc的写了window.close()

这种方法只允许呼吁通过使用window.open()方法的脚本时打开窗户。如果该窗口未由脚本打开,则在控制台中会显示与此类似的错误:脚本可能无法关闭未由脚本打开的窗口。

一种解决方法是自我(重新)打开的窗口,然后将其关闭:

window.open('', '_self').close() 

角的方式(以$窗口):

$window.open('', '_self').close() 

但是,这是一个bug漏洞和不应该在生产中使用,因为它可能会在未来版本的浏览器中修复。

+0

谢谢文森特,但是当我尝试使用$ window.close()时,但它在控制台显示我这个错误: 脚本可能只关闭它打开的窗口。 – anonymouslyGeek

+0

我编辑了我的帖子,告诉我它是否会唤起你的问题 –

+0

同样的问题: 脚本可能只关闭它打开的窗口。 – anonymouslyGeek