Saltar al contenido

¿Cómo usar la biblioteca moment.js en la aplicación angular 2 mecanografiado?

Solución:

Actualización de abril de 2017:

A partir de la versión 2.13.0, Moment incluye un archivo de definición de mecanografiado. https://momentjs.com/docs/#/use-it/typescript/

Simplemente instálelo con npm, en su tipo de consola

npm install --save moment

Y luego, en su aplicación Angular, la importación es tan fácil como esto:

import * as moment from 'moment';

Eso es todo, ¡obtienes soporte completo de TypeScript!

Edición adicional: Para escribir una variable o propiedad como Moment en TypeScript puede hacer esto, por ejemplo:

let myMoment: moment.Moment = moment("someDate");

moment es un recurso global de terceros. El momento en que el objeto sigue vivo window en el navegador. Por lo tanto, no es correcto import en su aplicación angular2. En su lugar, incluya el <script> etiqueta en su html que cargará el archivo moment.js.

Para hacer feliz a TypeScript, puede agregar

declare var moment: any;

en la parte superior de sus archivos donde lo usa para detener los errores de compilación, o puede usar

///<reference path="./path/to/moment.d.ts" />

o use tsd para instalar el archivo moment.d.ts que TypeScript podría encontrar por sí mismo.

Ejemplo

import {Component} from 'angular2/core';
declare var moment: any;

@Component({
    selector: 'example',
    template: '<h1>Today is {{today}}</h1>'
})
export class ExampleComponent{
    today: string = moment().format('D MMM YYYY');
}

Solo asegúrese de agregar la etiqueta de secuencia de comandos en su html o el momento no existirá.

<script src="https://foroayuda.es/node_modules/moment/moment.js" />

Carga del módulo moment

Primero necesitaría configurar un cargador de módulos como System.js para cargar los archivos commonjs de momento

System.config({
    ...
    packages: {
        moment: {
            map: "https://foroayuda.es/node_modules/moment/moment.js",
            type: 'cjs',
            defaultExtension: 'js'
        }
    }
});

Luego, para importar el momento en el archivo donde sea necesario, use

import * as moment from 'moment';

o

import moment = require('moment');

EDITAR:

También hay opciones con algunos paquetes como Webpack o SystemJS builder o Browserify que mantendrán el momento fuera del objeto de la ventana. Para obtener más información sobre estos, visite sus respectivos sitios web para obtener instrucciones.

Lo siguiente funcionó para mí.

Primero, instale las definiciones de tipo por un momento.

typings install moment --save

(Nota: NO --ambient)

Luego, para solucionar la falta de una exportación adecuada:

import * as moment from 'moment';
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *