Я пытаюсь использовать pikaday
с moment
, но почему-то я не могу заставить его работать.pikaday с моментом не работает
Я пытаюсь использовать его в aurelia
custom-attribute
следующим образом:
import "moment";
import "pikaday";
...
self.picker = new Pikaday({
field: $(this.element)[0]
, format: "DD.MM.YYYY"
, onSelect: (date) => {
console.log(self.picker.getMoment().format('Do MMMM YYYY')); //getMoment() is always null.
}
});
Несмотря на импортирование moment
до pikaday
, он не работает (в соответствии с рекомендациями в других так вопросы и проблемы GitHub), и getMoment () всегда равно нулю. Даже дата не по умолчанию отформатирована в соответствии с format
.
Я также обнаружил, что hasMoment
всегда false
в pikaday.js
, так как он не установлен должным образом в первом блоке кода (в источнике pikaday
, как можно ssen ниже):
(function (root, factory)
{
'use strict';
var moment;
if (typeof exports === 'object') {
// CommonJS module
// Load moment.js as an optional dependency
try { moment = require('moment'); } catch (e) {}
module.exports = factory(moment);
} else if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(function (req)
{
// Load moment.js as an optional dependency
var id = 'moment';
try { moment = req(id); } catch (e) {}
return factory(moment);
});
} else {
root.Pikaday = factory(root.moment);
}
}(this, function (moment)
{
'use strict';
/**
* feature detection and helper functions
*/
var hasMoment = typeof moment === 'function', // this is always false as it can't be set in the above block.
.....
Что заставило меня думаю, что я могу ошибочно импортировать moment
. Может ли кто-нибудь помочь мне в этом?
Дополнительные детали: Мои настройки проекта заключаются в следующем:
tsconfig.json
{
"compilerOptions": {
"target": "es6",
"isolatedModules": false,
"jsx": "react",
"declaration": false,
"noImplicitAny": false,
"removeComments": true,
"noLib": false,
"preserveConstEnums": true,
"suppressImplicitAnyIndexErrors": false,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"experimentalAsyncFunctions": true,
"allowSyntheticDefaultImports": false
},
"filesGlob": [
"**/*.ts",
"**/*.tsx",
"!node_modules/**"
],
"files": [ ],
"compileOnSave": false,
"buildOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}
Я также использую system.js
:
System.config({
baseURL: "/",
defaultJSExtensions: true,
transpiler: "babel",
babelOptions: {
"optional": [
"runtime",
"optimisation.modules.system"
]
},
paths: {
"*": "dist/*",
"github:*": "jspm_packages/github/*",
"npm:*": "jspm_packages/npm/*"
},
map: {
...
}
})
Обход: Внутри main
(конфигурация Aurelia):
import moment from "moment";
...
// Register moment on global scope.
window["moment"] = moment;
...
И, да, я знаю, что это некрасиво, но делает работу :)
У вас есть момент, установленный с jspm? 'jspm install npm: moment', на самом деле вам не нужно импортировать« момент », если вы его не используете. Если вам нужно «import moment from« moment » – valichek
Спасибо, что ответили. На самом деле я попробовал как «импортный момент с момента», так и «импорт» момента », но никто из них не выполнял мою задачу. И что касается его использования, «момент» явно не используется в моем машинописном коде. Однако я использую календарный контроль 'pikaday', который ищет« момент »и пытается его использовать; таким образом, мне нужно как-то загрузить его. ** P.S. ** Хотя 'import moment from 'moment'' помогает использовать момент непосредственно в моем файле машинописных файлов. –