RequireJS + Bootstrap Datepicker + Locale Files

时间:2017-09-05 12:27:53

标签: typescript localization requirejs bootstrap-datepicker

我正在将项目转换为模块。所以大多数事情都有效,但有些组件存在一些问题。主要问题似乎是本地化文件 如果我有这个例子的解决方案,我可以解决我的项目中的其他问题。

我在这里使用Bootstrap Datepicker {{3}}

需要配置:

cordova prepare

App.ts:

 require.config({
   baseUrl: "Scripts",    
   paths: {
        ... some more like jquery and jquery-ui...
        "bootstrap-datepicker": "bootstrap-datepicker",
        "bootstrap-datepicker-de": "./locales/bootstrap-datepicker.de",     
   }
   shim: {
    'bootstrap-datepicker-de': ['bootstrap-datepicker']
   }
});

自举-datepicker.de.js

... some more imports like jquery and jquery-ui...
import "bootstrap-datepicker";
import "bootstrap-datepicker-de";
... init App ...

当我加载页面时出现此错误:

    ; (function ($) {
    $.fn.datepicker.dates['de'] = {
        days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
        daysShort: ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"],
        daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
        months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
        monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
        today: "Heute",
        monthsTitle: "Monate",
        clear: "Löschen",
        weekStart: 1,
        format: "dd.mm.yyyy"
    };
}(jQuery));

1 个答案:

答案 0 :(得分:0)

我们遇到了同样的问题,并通过将此代码移动到viewmodel

的构造函数中来解决它
$(document).ready(() => {
        (function($){
            (<any>$.fn.datepicker).dates['de'] = {
                days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
                daysShort: ["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"],
                daysMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
                months: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
                monthsShort: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
                today: "Heute",
                monthsTitle: "Monate",
                clear: "Löschen",
                weekStart: 1,
                format: "dd.mm.yyyy"
            };
        }($));

        $('#date').datepicker({
            format: 'dd.mm.yyyy',
            autoclose: true,

            language: "de",

            orientation: 'left bottom'
        });
    });