2017-01-22 13 views
0

setDefaultのプロパティを追加せずに正常に動作するngDialogを使用しています。プロパティを設定した場合、app.configに1度はレンダリングされません。角度ngDialog:setDefaultsの問題

escまたはダイアログボックス以外の場所をクリックするとダイアログボックスが閉じないようにします。

ngDialog.open({ 
    template: 'app/components/pages/page-locations/compare-location.html', 
    className: 'ngdialog-theme-plain', 
    scope: $scope 
}); 

私は以下のコードを追加するまで、これは完全に罰金働いていた:私は、ドキュメントから上記のコードを持って、私はclassNameを変更

var app = angular.module('myApp', ['ngDialog']); 
app.config(['ngDialogProvider', function (ngDialogProvider) { 
    ngDialogProvider.setDefaults({ 
     className: 'ngdialog-theme-plain', 
     plain: true, 
     showClose: false, 
     closeByDocument: false, 
     closeByEscape: false 
    }); 
}]); 

を。現時点では、モーダルコンテンツの代わりにリンクとしてレンダリングされます。

<div class="ngdialog-content" role="document"> 
    app/components/pages/page-locations/compare-location.html 
</div> 
+0

プランナーを作成できますか? – Aravind

+1

あなたは一つだけだかのダイアログの数が少ない理由は、単に 'closeByEscape追加しない場合:false'をと' ngDialog.open({...})に任意の他の設定を; ' –

+0

@KScandrettありますが、仲間を行きます...! ! –

答えて

0

私は、問題はあなたのビュー

// Example modal template 
<script type="text/ng-template" id="modalDialogId"> 
     <div class="ngdialog-message"> 
      <h3>ngDialog modal example</h3> 
     <div class="ngdialog-buttons"> 
      <button type="button" class="ngdialog-button ngdialog-button-primary" ng-click="confirm(confirmValue)">Confirm</button> 
      <button type="button" class="ngdialog-button ngdialog-button-secondary" ng-click="closeThisDialog('button')">Cancel</button> 
     </div> 
    </script> 

でダイアログIDを定義し、この

ngDialog.open({ 
    template: 'modalDialogId', 
    className: 'ngdialog-theme-plain', 
    scope: $scope 
}); 
+0

私が解決しようとしているどのような問題は、 'esc'または'ドキュメントclick'にダイアログボックスを閉じてから阻止されます。これは解決策の一部ですが、私はあまりに多くのダイアログとあまりにも多くのコードを持っています。 –

+1

oh。 ng-includeを使って多くのスクリプト/テンプレートを一緒に組み込むことができます。 – digit

+0

意味があります。ありがとうございました。 –

0

のようなテンプレートでそれを呼び出す必要があり、ここで

// you're calling html file rather than dialog id 
template: 'app/components/pages/page-locations/compare-location.html' 

依存していると思います私が見つけた解決策は:

ngDialog.open({ 
    template: 'app/components/pages/page-locations/info-compare.html', 
    className: 'ngdialog-theme-plain', 
    scope: $scope, 
    closeByDocument: false, 
    closeByEscape: false 
}); 

大量のコードを含むダイアログボックスが多すぎるため、私は自分のビューにスクリプトとして追加したくありませんでした。