moment
เป็นทรัพยากรระดับโลกของบุคคลที่สาม วัตถุขณะนั้นอาศัยอยู่window
ในเบราว์เซอร์ ดังนั้นจึงไม่ถูกต้องimport
ในแอปพลิเคชัน angular2 ของคุณ ให้ใส่<script>
แท็กใน html ของคุณแทนซึ่งจะโหลดไฟล์ moment.js
เพื่อทำให้ TypeScript มีความสุขคุณสามารถเพิ่ม
declare var moment: any;
ที่ด้านบนของไฟล์ที่คุณใช้เพื่อหยุดข้อผิดพลาดในการรวบรวมหรือคุณสามารถใช้
///<reference path="./path/to/moment.d.ts" />
หรือใช้ tsd เพื่อติดตั้งไฟล์ moment.d.ts ซึ่ง TypeScript อาจพบด้วยตัวมันเอง
ตัวอย่าง
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');
}
ให้แน่ใจว่าได้เพิ่มแท็กสคริปต์ใน html ของคุณหรือช่วงเวลาที่ไม่มีอยู่
<script src="node_modules/moment/moment.js" />
การโหลดโมดูล moment
ก่อนอื่นคุณต้องติดตั้งโมดูลโหลดเดอร์เช่น System.jsเพื่อโหลดไฟล์ commonjs ในขณะนั้น
System.config({
...
packages: {
moment: {
map: 'node_modules/moment/moment.js',
type: 'cjs',
defaultExtension: 'js'
}
}
});
จากนั้นจะนำเข้าช่วงเวลาในไฟล์ที่ต้องการใช้
import * as moment from 'moment';
หรือ
import moment = require('moment');
แก้ไข:
นอกจากนี้ยังมีตัวเลือกสำหรับผู้ให้บริการบางอย่างเช่นผู้สร้าง Webpack หรือผู้สร้าง SystemJS หรือ Browserify ที่จะช่วยให้คุณไม่พลาดวัตถุหน้าต่าง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งเหล่านี้กรุณาเยี่ยมชมเว็บไซต์ของพวกเขาสำหรับการเรียนการสอน