moment
est une ressource mondiale tierce. Le moment où l'objet survit window
dans le navigateur. Il n'est donc pas correct import
dans votre application angular2. À la place, incluez la <script>
balise dans votre html qui chargera le fichier moment.js.
Pour rendre TypeScript heureux, vous pouvez ajouter
declare var moment: any;
en haut de vos fichiers où vous l'utilisez pour arrêter les erreurs de compilation, ou vous pouvez utiliser
///<reference path="./path/to/moment.d.ts" />
ou utilisez tsd pour installer le fichier moment.d.ts que TypeScript pourrait trouver par lui-même.
Exemple
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');
}
Assurez-vous simplement d'ajouter la balise de script dans votre html ou le moment n'existera pas.
<script src="node_modules/moment/moment.js" />
Chargement du module moment
Vous devez d'abord configurer un chargeur de module tel que System.js pour charger les fichiers commonjs du moment
System.config({
...
packages: {
moment: {
map: 'node_modules/moment/moment.js',
type: 'cjs',
defaultExtension: 'js'
}
}
});
Ensuite, pour importer le moment dans le fichier si nécessaire, utilisez
import * as moment from 'moment';
ou
import moment = require('moment');
ÉDITER:
Il existe également des options avec certains bundleurs tels que Webpack ou SystemJS builder ou Browserify qui garderont un moment hors de l'objet fenêtre. Pour plus d'informations à ce sujet, veuillez consulter leurs sites Web respectifs pour obtenir des instructions.