2017-03-22 20 views
0

我想阻止模態,從外面點擊關閉時或按下鍵盤esc。所以我用backdrop:'static'keyboard:false像下面,背景:「靜態」沒有工作ngDialog模式

var app = angular.module('MyApp', ['ngDialog', 'chatSocket']); 

    app.controller('MainCtrl', function ($scope, ngDialog) { 
    $scope.openChatBox = function() { 
     ngDialog.openConfirm({ 
     template: 'chatBox.html', 
     controller: 'msgController', 
     backdrop: 'static', 
     keyboard: false, 
     scope: $scope //Pass the scope object if you need to access in the template 
    }).then(
     function(value) { 
      //You need to implement the saveForm() method which should return a promise object 
      $scope.closeChat().then(

      ); 
     }, 
     function(value) { 
      //Cancel or do nothing 
     } 
    ); 
}; 

}); 

按鈕點擊打開模式是,

<button ng-click="openChatBox()" >Open</button> 

什麼是我的代碼的問題,爲什麼不工作?

+0

這是什麼'ngDialog.openConfirm'?正常地,我們使用'$ modal.open' – DilumN

回答

0

對於$modal,我們使用backdropkeyboard選項來實現它,但是對於ngDialog選項是closeByDocumentcloseByEscape

​​
0

你應該在你的模式使用backdrop: 'static'同時開啓它,而$uibModal.open()

$uibModal.open({ 
    template: 'chatBox.html', 
    controller: 'msgController', 
    backdrop: 'static', // <-- 
    ... 
}); 

,看一下AngularUI modal docs

+0

什麼是$ uibModal?你可以更具體的 – Kavipriya

+0

@Kavipriya這是來自AngularUI的模態。請參閱[docs](https://angular-ui.github.io/bootstrap/#!#modal),這是您如何打開模式。 – Mistalis

0

似乎像ngDialog不支持背景靜態。因此,最好使用$ model.open

$scope.openChatBox = function() { 
    var modalInstance = $modal.open({ 
        template: 'chatBox.html', 
        controller: 'msgController', 
        backdrop: 'static', 
        keyboard: false, 
        scope: $scope 
       }); 
       modalInstance.result.then(function() { 
        function(value) { 
         // do something 
        }, 
        function(value) { 
         //Cancel or do nothing 
        } 
       }); 
} 
+0

如果我使用'modal.open',那麼應該如何打開按鈕單擊的模式? – Kavipriya

+0

非常感謝!但是我應該在'dependency'中包含'ui-bootstrap'。並將$ modal傳遞給控制器​​。對?即使在包含之後它也不工作。我編輯了這個問題,並把完整的代碼。 – Kavipriya

+0

是的,你必須注入控制器 – DilumN

0

使用closeByDocument:false,而不是背景,以防止頁面關閉後臺點擊。

template: 'chatBox.html', 
    controller: 'msgController', 
    closeByDocument: false, 
    keyboard: false,