style img change attribute javascript angularjs momentjs systemjs

javascript - img - title html



SystemJS-el momento no es una funciĆ³n (2)

Estoy usando JSPM , AngularJS , TypeScript , SystemJS y ES6 y mi proyecto se está ejecutando bastante bien ... a menos que intente usar momentJS.

Este es el error que recibo:

TypeError: el momento no es una función

Esto es parte del código:

import * as moment from ''moment'';

Más:

var momentInstance = moment(value);

Si lo depuro, el momento es un objeto no una función:

Así es como se ve mi paquete JSPM de moment.js:

module.exports = require("npm:[email protected]/moment.js");

He leído mucho y no pude encontrar una manera de resolver esto ... ¿alguna idea?

Algunas cosas que he leído / intentado:

¿Cómo usar momentjs en TypeScript con SystemJS?

https://github.com/angular-ui/ui-calendar/issues/154

https://github.com/jkuri/ng2-datepicker/issues/5

Los sistemas de módulos de typcript en momentJS se comportan de manera extraña

https://github.com/dbushell/Pikaday/issues/153

¡Gracias!


Esto funcionó para mí:

import moment from ''moment/src/moment''


Simplemente elimine la agrupación ( * as ) de su declaración de importación:

import moment from ''moment'';

Sin profundizar demasiado en el código fuente , parece que el moment generalmente exporta una función, que tiene todo tipo de métodos y otras propiedades asociadas.

Al usar * as , efectivamente estás agarrando todas esas propiedades y uniéndolas a un nuevo objeto, destruyendo la función original. En su lugar, solo desea la exportación principal ( export default en ES6, module.exports object en Node.js).

Alternativamente, podrías hacer

import moment, * as moments from ''moment'';

para obtener la función de momento como moment , y todas las demás propiedades en un objeto llamado moments . Esto tiene un poco menos sentido al convertir las exportaciones de ES5 de este modo al estilo de ES6, porque el moment conservará las mismas propiedades.