2017-02-11 2 views
0

У меня есть несколько входов календаря, установленных с помощью Bootstrap Datetimepicker: http://eonasdan.github.io/bootstrap-datetimepicker/.Как установить настройки по умолчанию для Datetimepicker?

Я создал объект, содержащий несколько перезаписей:

DatetimepickerDefaults = { 
    icons: { 
     time: 'fa fa-clock-o', 
     date: 'fa fa-calendar', 
     up: ' fa fa-angle-up', 
     down: 'fa fa-angle-down', 
     previous: 'fa fa-angle-left', 
     next: 'fa fa-angle-right', 
     today: 'fa fa-crosshairs', 
     clear: 'fa fa-trash', 
     close: 'fa fa-times' 
    } 
} 

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

$('#datetimepicker1').datetimepicker(DatetimepickerDefaults); 

Проблема заключается в том, что некоторые из входов необходимо иметь некоторые специальные параметры, как формат: «LT» поэтому, когда я инициализировать их, я пишу:

$('#datetimepicker3').datetimepicker({ 
    icons: { 
     time: 'fa fa-clock-o', 
     date: 'fa fa-calendar', 
     up: ' fa fa-angle-up', 
     down: 'fa fa-angle-down', 
     previous: 'fa fa-angle-left', 
     next: 'fa fa-angle-right', 
     today: 'fa fa-crosshairs', 
     clear: 'fa fa-trash', 
     close: 'fa fa-times' 
    }, 
    format: 'LT' 
}); 

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

+0

Сколько таких жанров? – webmaster

+0

@webmaster, есть дюжина уникальных настроек. – sdvnksv

ответ

0

Вы можете установить его в качестве функции, как:

function.DatetimepickerDefaults = function(field, value) { 
    var retVal = { 
    icons: { 
     time: 'fa fa-clock-o', 
     date: 'fa fa-calendar', 
     up: ' fa fa-angle-up', 
     down: 'fa fa-angle-down', 
     previous: 'fa fa-angle-left', 
     next: 'fa fa-angle-right', 
     today: 'fa fa-crosshairs', 
     clear: 'fa fa-trash', 
     close: 'fa fa-times' 
    }}; 
    if (field) { 
     retVal[field] = value; 
    } 
    return retVal; 
} 

И использовать это нравится:

$('#datetimepicker1').datetimepicker(DatetimepickerDefaults()); 
$('#datetimepicker2').datetimepicker(DatetimepickerDefaults("format", "LT")); 
$('#datetimepicker2').datetimepicker(DatetimepickerDefaults("format", "LT2")); 
//And etc... 

Вы можете использовать списки для более значений, я надеюсь, что это помогает

0

Это более компактный и удобный вариант @webmaster's answer, воспользовавшись методом jQuery.extend().

// defaults 
function DatetimepickerDefaults(opts) { 
    return $.extend({},{ 
     sideBySide: true, 
     ignoreReadonly: true, 
     showClose: true, 
     toolbarPlacement: 'top' 
    }, opts); 
} 

// usage 
$('#datetimepicker2').datetimepicker(DatetimepickerDefaults({ 
    sideBySide: false, 
    showClear: true 
})); 

Вы можете снова дать объект настроек и те будут сливаться с и при необходимости переписать настройки по умолчанию.

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