【问题标题】:How to set locale for angularjs-bootstrap-datetimepicker via imported momentjs如何通过导入的 momentjs 为 angularjs-bootstrap-datetimepicker 设置语言环境
【发布时间】:2018-06-03 07:00:05
【问题描述】:

我使用angularjs-bootstrap-datetimepicker作为

import uiBootsrapDatetimepicker from 'angularjs-bootstrap-datetimepicker';
angula.module('myModule', [uiBootsrapDatetimepicker])

和用于捆绑的 Webpack。

我想设置自定义区域设置(或如何更改一周的第一天?),我在readme 找到:

所有国际化都由 Moment.js 处理,有关详细信息,请参阅 Moment 的文档。在大多数情况下,只需要调用 moment.locale(String)

但是如果代码中有 import new momentjs 实例怎么办 (GitHub url):

var mt = typeof moment === 'undefined' ? require('moment') : moment

然后在代码中结束 (GitHub url):

moment.locale().toLowerCase()

如果 Moment 在另一个模块中创建,我在哪里可以设置区域设置?

【问题讨论】:

    标签: javascript angularjs ecmascript-6 momentjs bootstrap-datetimepicker


    【解决方案1】:

    在您的文档中包含 moment.js 和 angular-moment:

    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment-with-locales.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-moment/1.2.0/angular-moment.js"></script>
    

    将 angularMoment 添加到您的应用中:

    var app = angular.module('myApp', ['ng-bootstrap-datepicker', 'angularMoment']);
    

    然后你可以在你的控制器中调用moment

    var AppCtrl = function ($scope){
        moment.locale("fr");
        console.log(moment.locale());
    };
    

    【讨论】:

    • 问题是外部模块导入 Moment 本身并且只使用默认语言环境。或者使用我没有的全局“时刻”变量(es6 导入 + webpack)。
    • 我对webpack了解不多,但是你不能做这样的事情吗? import moment from 'moment'; window.moment = moment; 将其添加到全局作用域,然后使用myAngularApp.value('moment', moment); 将其注入到您的应用中?
    • 我有另一个库包,不能改变它们的全局变量。所以我现在破解了 lib src(
    猜你喜欢
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    相关资源
    最近更新 更多