Moment locale插件未加载

时间:2017-01-23 13:26:28

标签: jquery momentjs

我正在使用MomentMoment LocaleMoment Timezone插件来支持Bootstrap datetime calender插件的区域设置和时区。

我正在使用requireJs,以下是我的配置文件的内容:

require.config({
    baseUrl: '.',
    paths: {
        'jQuery': '../path to jQuery plugin',
        'moment': '../path to moment js plugin',
        'momentLocale':'../path to moment locale js plugin',
        'momentTimeZone':'../path to moment timezone js plugin'
    },
    shim: {
        'moment': {
            deps: ['jQuery']
        },
        'momentLocale': {
            deps: ['moment']
        }
    }
});

我还在垫片中跟踪link包含的区域设置,并使用moment编辑时区库到momentLocale以支持日历 locale 时区

我将语言环境值传递给返回默认语言环境的方法。 在我的应用程序中,我确实有很多语言,这些语言不受js的支持。为了解决这个问题,我正在维护映射表以返回支持时刻的语言。 (例如:如果我选择af_NA作为区域,它应该返回“af”作为语言。这是区域设置值的上下文切换案例.....

define([
    'jQuery',
    'moment',
    'momentLocale'],
    function(
        $,
        moment,
        momentLocale ) {
            getLocaleForCal: function(region) {
                switch(region): {
                    case "af_NA":
                    case "af_ZA":
                        return "af";
                    break;
                    default:
                        return "en";
                    break;
                }
             }
         };
      });

以下是我传递给日历的选项

$(function() {
    var currentRegion = this.getLocaleForCal("af_NA");
    $("#datetimepicker2").datetimepicker({
        locale: moment.locale(currentRegion)
    });
});

默认情况下,语言环境显示为“en”,而不是“af”。因为当前区域设置没有加载,因为它正在使用“en”设置值。

我做错了什么,如何解决?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我刚刚添加了关于moment-timezone-with-data-2010-2020.js file的新参考资料,它对我来说很好。所以我的建议是在moment.js文件之前添加此文件的引用/要求。