2017-03-22 10 views
0

外部でクリックしたときにモーダルが閉じないようにするか、キーボードでescを押します。だから私は、ボタンがモーダルを開くためにクリックし、以下のように背景:ngDialogモーダルで 'static'が機能していない

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 
     } 
    ); 
}; 

}); 

backdrop:'static'keyboard:falseを使用し、

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

機能しない理由私のコードの問題は、どのようなものですか?

+0

この「ngDialog.openConfirm」とは何ですか?通常は '$ modal.open'を使用します – DilumN

答えて

0

を使用することをお勧めします、我々はそれを達成するためにbackdropkeyboardオプションを使用していますが、ngDialogのためのオプションがcloseByDocumentcloseByEscapeです。

​​
0

$uibModal.open()ながら、あなたが開いている間、あなたのモーダルにbackdrop: 'static'を使用する必要があります。

$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のように見えますが、静的な背景をサポートしていません。だから、$modalについて$ 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

ありがとう!しかし、私は 'ui-bootstrap'を依存関係に含めるべきです。 $ modalをコントローラに渡します。右?インクルードしても機能しません。私は質問を編集し、完全なコードを入れました。 – Kavipriya

+0

はいコントローラの中に$ modalを注入する必要があります – DilumN

0

バックグラウンドの代わりにcloseByDocument:falseを使用して、バックグラウンドのクリックでページが閉じないようにします。

template: 'chatBox.html', 
    controller: 'msgController', 
    closeByDocument: false, 
    keyboard: false, 
関連する問題