moment
è una risorsa globale di terze parti. Il momento in cui l'oggetto vive window
nel browser. Pertanto non è corretto import
nell'applicazione angular2. Invece includi il <script>
tag nel tuo html che caricherà il file moment.js.
Per rendere felice TypeScript puoi aggiungere
declare var moment: any;
nella parte superiore dei tuoi file dove lo usi per interrompere gli errori di compilazione, oppure puoi usarli
///<reference path="./path/to/moment.d.ts" />
oppure usa tsd per installare il file moment.d.ts che TypeScript potrebbe trovare da solo.
Esempio
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');
}
Assicurati solo di aggiungere il tag script nel tuo html o il momento non esisterà.
<script src="node_modules/moment/moment.js" />
Caricamento del modulo moment
Innanzitutto è necessario impostare un caricatore di moduli come System.js per caricare i file commonjs del momento
System.config({
...
packages: {
moment: {
map: 'node_modules/moment/moment.js',
type: 'cjs',
defaultExtension: 'js'
}
}
});
Quindi importare il momento nel file dove necessario
import * as moment from 'moment';
o
import moment = require('moment');
MODIFICARE:
Ci sono anche opzioni con alcuni bundler come Webpack o builder SystemJS o Browserify che manterranno il momento fuori dall'oggetto finestra. Per ulteriori informazioni al riguardo, visitare i rispettivi siti Web per istruzioni.