2017-02-11 3 views
0

Ich habe mehrere Kalendereingaben mit Bootstrap Datetimepicker eingerichtet: http://eonasdan.github.io/bootstrap-datetimepicker/.Wie lege ich die Standardeinstellungen für Datetimepicker fest?

Ich habe ein Objekt enthält einige Überschreibungen erstellt:

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' 
    } 
} 

, die ich alle Kalendereingänge anwenden möchten. Also wenn ich jetzt ein Plugin init will ich schreiben:

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

Das Problem ist, dass einige der Eingänge müssen einige spezielle Einstellungen haben, wie Format: ‚LT‘ so, wenn ich sie init, schreibe ich:

$('#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' 
}); 

also muss ich diese Standardeinstellungen noch einmal wiederholen. Gibt es eine Möglichkeit, es für alle Plugin-Instanzen standardmäßig zu machen?

+0

Wie viel Genres wie das? – webmaster

+0

@webmaster, gibt es Dutzende von einzigartigen Einstellung. – sdvnksv

Antwort

0

Sie können es als eine Funktion gesetzt wie:

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

Und verwenden Sie es mögen:

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

Sie Listen für mehrere Werte verwenden können, ich hoffe, das hilft

0

Dies ist eine kompaktere und bequemere Version von @webmasteranswer, unter Ausnutzung der jQuery.extend() Methode.

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

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

können Sie wieder ein Objekt von Einstellungen geben und solche mit fusionieren und wenn die Standardeinstellungen notwendig überschrieben.

Verwandte Themen