momentist eine globale Ressource eines Drittanbieters. Der Moment, in dem das Objekt windowim Browser weiterlebt. Daher ist importes in Ihrer Angular2-Anwendung nicht korrekt . Fügen Sie stattdessen die<script>Fügen Sie Tag in Ihr HTML ein, das die Datei moment.js lädt.
Um TypeScript glücklich zu machen, können Sie hinzufügen
declare var moment: any;
oben in Ihren Dateien, wo Sie es verwenden, um die Kompilierungsfehler zu stoppen, oder Sie können verwenden
///<reference path="./path/to/moment.d.ts" />
Oder verwenden Sie tsd, um die Datei moment.d.ts zu installieren, die TypeScript möglicherweise selbst findet.
Beispiel
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');
}
Stellen Sie nur sicher, dass Sie das Skript-Tag in Ihrem HTML-Code hinzufügen, da sonst kein Moment vorhanden ist.
<script src="node_modules/moment/moment.js" />
Modul laden moment
Zuerst müssten Sie einen Modullader wie System.js einrichten , um die momentan gemeinsamen Dateien zu laden
System.config({
...
packages: {
moment: {
map: 'node_modules/moment/moment.js',
type: 'cjs',
defaultExtension: 'js'
}
}
});
Dann, um Moment in die Datei zu importieren, wo nötig
import * as moment from 'moment';
oder
import moment = require('moment');
BEARBEITEN:
Bei einigen Bundlern wie Webpack oder SystemJS Builder oder Browserify gibt es auch Optionen, die den Moment vom Fensterobjekt fernhalten. Weitere Informationen hierzu finden Sie auf den jeweiligen Websites.