Как включить момент.js для Tempus Dominus Bootstrap с requirejs в плагин Moodle? - PullRequest
0 голосов
/ 07 сентября 2018

Здравствуйте, я разрабатываю плагин Moodle, в котором мне нужен DateTimeper от Tempus Dominus Bootstrap

Я использовал AMD requirejs.

В amd / src / у меня есть config.js:

define([], function () {
  window.requirejs.config({

    paths: {
        "moment": M.cfg.wwwroot + '/admin/tool/myplugin/js/moment.min',
        "bootstrap": M.cfg.wwwroot + '/admin/tool/myplugin/js/bootstrap.bundle.min',
        "datepicker": M.cfg.wwwroot + '/admin/tool/myplugin/js/bootstrap-datepicker141.min',
        "datetimepicker": M.cfg.wwwroot + '/admin/tool/myplugin/js/tempusdominus-bootstrap-4.min',

    },
    shim: {            
        'moment': {exports: 'moment'},
        'bootstrap': {exports: 'Bootstrap'},
        'datepicker': { exports: 'datepicker'}, 
        'datetimepicker': {deps: ['moment'], exports: '$.fn.datetimepicker'},
    }
});
});

datetimepicker.js:

define(['tool_myplugin/config', 'datetimepicker'], function(unused,datetimepicker) {
    return datetimepicker;
}
);

tool_myplugin.js:

define([
'jquery',
'tool_myplugin/moment',
'tool_myplugin/datepicker', 
'tool_myplugin/datetimepicker',
],
function ($,moment) {

    function initManage() {
        $(document).ready(() => {

        $('#datetimepicker1').datetimepicker({
            format: 'HH:mm',
            use24hours: true,
            defaultDate: moment({hour: 9, minute: 00})

        });
     });

    }
return {
    init: function () {
        initManage();

}
};
});

У меня есть следующие ошибки в консоли:

Error: Tempus Dominus Bootstrap4's requires moment.js. Moment.js must be included before Tempus Dominus Bootstrap4's JavaScript. tempusdominus-    bootstrap-4.min.js:20:9
.../tempusdominus-bootstrap-4.min.js:20:9

и

Error: No define call for datetimepicker
http://requirejs.org/docs/errors.html#nodefine

1 Ответ

0 голосов
/ 18 сентября 2018

Я нашел решение:

вот amd / src / moment.js

define(['tool_myplugin/config',  'moment'], function(unused,moment) {

 window.moment = moment;
    if (!window.moment) {
        alert("moment ko");
    }
    return moment;
 }
);
...