2016-06-02 3 views
1

У меня есть много диалоговых всплывающих окон распространяется на многих страницах, каждый используя BoostrapDialogДиалоговое окно Bootstrap Global?

BootstrapDialog.show({...}); 
or 
var x = new BootstrapDialog({...}); 

Я хочу, чтобы добавить «closeByBackdrop: истинный», чтобы все из них.
Есть ли способ определить некоторые параметры по умолчанию? Я думаю, по той же схеме, как ajaxSettings JQuery (в), где вы можете установить глобальные параметры (но все еще переопределить их в каждом конкретном случае, если это необходимо)

$.ajaxSetup ({ 
    cache: false, 
    error: function(x, t, m){ 
     alert("Generic Error"); 
    } 
}); 

Я cant't найти какую-либо информацию удаленно, связанные с глобальным настройки параметров в любом месте ..., что заставляет меня думать, что такой вещи нет. интересно, знает ли кто-нибудь об этом ... или даже лучше реализовал свой собственный способ достижения этого.

Очевидное решение состоит в том, чтобы вручную просмотреть все мои диалоги и добавить параметр вручную, но с это предпочтительный способ, которым они должны ВСЕ работать, я бы не хотел указывать его для каждого экземпляра.

Другим решением было бы повторно код их всех, чтобы принять объект мои собственные варианты, а просто продлить этот объект для каждого экземпляра:

$(document).ready(function(){ 

    modalOptions = {...}; 
});  

function openDialogX(){ 

    var dialogXOptions = modalOptions; 
    dialogXOptions.buttons = [...]; 
    dialogXOptions.title = "..."; 
    dialogXOptions.message = "..."; 

    var dialogX = new BootstrapDialog(dialogXOptions); 
} 

Было бы хорошо, чтобы не придется повторно кодировать их чтобы принять пользовательский объект опций.

TL; DR:
Есть ли эквивалент BoostrapDialog к ajaxSettup JQuery (в) для переопределения параметров по умолчанию. Если нет, то какие решения вы использовали для достижения этого (если вообще).

ответ

1

Вы do имеют BootstrapDialog.defaultOptions вокруг line 231 in the master repo. Используйте это, чтобы изменить значения по умолчанию для все, что нужно:

$.extend(BootstrapDialog.defaultOptions, { 
    closable: true, 
    closeByBackdrop: true, 
    autodestroy: false 
}); 

и извлекать выгоду из новых настроек во всех диалогах:

var myDialog = new BootstrapDialog({ 
    title: 'Example', 
    message: 'Sample text' 
}).open() 

демо ->http://jsfiddle.net/ffj6r1b6/ (попробуйте изменить closeByBackdrop к false и повторно -run)

+0

Это потрясающе. Благодарю. Постскриптум ** Почему это не документировано? ** Теперь я знаю, что я ищу, я получаю действительные результаты Google ... ну, 1 результат в не связанном вопросе. – Steve

+1

Эй, @ Штеве, прошу прощения за долгую задержку, спасибо за то, что вы приняли ответ! Я не знаю, почему это не задокументировано, но для таких плагинов очень распространено, что у них есть '.defaultOptions' или' .defaults', все плагины для их загрузки. Вы можете пойти «выше» и заставить все модальности для начальной загрузки иметь некоторые разные «.defaults» - просто найдите его в источнике и сделайте, как указано выше. – davidkonrad

+0

Полезно знать, спасибо;) – Steve

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