2017-01-22 2 views
0

Я использую ngDialog, который работает совершенно нормально, не добавляя никаких свойств setDefault, один раз в app.config, если я устанавливаю какие-либо свойства, он не отображает.Угловой ngDialog: Проблемы с setDefaults

Я хочу, чтобы диалоговое окно не закрывалось при нажатии esc или в любом другом месте, кроме диалогового окна.

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

Это работает совершенно нормально, пока я не добавил код ниже:

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

Я получил код выше от документации, и я изменил className. На данный момент он представляет собой ссылку вместо модального контента.

<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

Я думаю, этот вопрос опирается здесь

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

Вы должны определить диалоговое идентификатор с вашей точки зрения

// 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> 

и вызвать его в шаблоне, как это

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

Проблема, которую я пытаюсь решить, не позволяет закрыть диалоговое окно на 'esc' или' document click'. Это будет частью решения, но снова у меня слишком много диалогов и слишком много кода. –

+1

о. вы можете просто использовать ng-include для совместного использования нескольких сценариев/шаблонов. – digit

+0

Это имеет смысл. Спасибо. –

0

Решение, которое я выяснил, было:

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

Поскольку у меня слишком много диалоговых окон с большим количеством кода, я не хотел добавлять в качестве сценария на мой взгляд.

Смежные вопросы