2017-06-29 176 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