moment
jest globalnym zasobem strony trzeciej. Ten moment trwa window
w przeglądarce. Dlatego nie jest to poprawne import
w twojej aplikacji angular2. Zamiast tego umieść <script>
tag w pliku HTML, który załaduje plik moment.js.
Aby uszczęśliwić TypeScript, możesz dodać
declare var moment: any;
u góry plików, gdzie używasz go, aby zatrzymać błędy kompilacji, lub możesz użyć
///<reference path="./path/to/moment.d.ts" />
lub użyj tsd, aby zainstalować plik moment.d.ts, który może samodzielnie znaleźć TypeScript.
Przykład
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');
}
Pamiętaj tylko, aby dodać tag skryptu do kodu HTML, w przeciwnym razie moment nie będzie istniał.
<script src="node_modules/moment/moment.js" />
Ładowanie modułu moment
Najpierw musisz skonfigurować moduł ładujący, taki jak System.js, aby załadować chwilowe pliki commonjs
System.config({
...
packages: {
moment: {
map: 'node_modules/moment/moment.js',
type: 'cjs',
defaultExtension: 'js'
}
}
});
Następnie zaimportuj moment do pliku, w razie potrzeby użyj
import * as moment from 'moment';
lub
import moment = require('moment');
EDYTOWAĆ:
Istnieją również opcje z niektórymi programami pakującymi, takimi jak Webpack lub Konstruktor SystemJS lub Browserify, które utrzymają chwilę na obiekcie okna. Aby uzyskać więcej informacji na ten temat, odwiedź odpowiednie strony internetowe w celu uzyskania instrukcji.