อัปเดตสำหรับ (2017-03-13) :
ลบการกล่าวถึง moduleId ทั้งหมดแล้ว ลบ "ตำราที่เกี่ยวข้องของส่วนประกอบ" ลบแล้ว
เราได้เพิ่มปลั๊กอิน SystemJS ใหม่ (systemjs-angular-loader.js) เข้ากับการกำหนดค่า SystemJS ที่เราแนะนำ ปลั๊กอินนี้จะแปลงเส้นทาง "องค์ประกอบสัมพันธ์" ใน templateUrl และ styleUrls เป็น "เส้นทางสัมบูรณ์" สำหรับคุณ
เราขอแนะนำให้คุณเขียนเส้นทางที่สัมพันธ์กับองค์ประกอบเท่านั้น นั่นเป็นรูปแบบเดียวของ URL ที่กล่าวถึงในเอกสารเหล่านี้ คุณไม่จำเป็นต้องเขียน@Component({ moduleId: module.id })
และไม่ควร
ที่มา: https://angular.io/docs/ts/latest/guide/change-log.html
ความหมาย:
moduleId?: string
moduleId
พารามิเตอร์ภายใน@Component
คำอธิบายประกอบใช้string
ค่าซึ่งเป็น;
" id โมดูลของโมดูลที่มีส่วนประกอบ "
การใช้งาน CommonJS: module.id
,
การใช้งาน SystemJS: __moduleName
เหตุผลที่ใช้moduleId
:
moduleId
ใช้เพื่อแก้ไขเส้นทางสัมพัทธ์สำหรับสไตล์ชีทและเทมเพลตของคุณตามที่ระบุในเอกสาร
id โมดูลของโมดูลที่มีส่วนประกอบ จำเป็นต้องสามารถแก้ไข URL สัมพัทธ์สำหรับเทมเพลตและสไตล์ ใน Dart สามารถกำหนดได้โดยอัตโนมัติและไม่จำเป็นต้องตั้งค่า ใน CommonJS สามารถตั้งค่าเป็น module.id ได้เสมอ
ผู้อ้างอิง (เก่า): https://angular.io/docs/js/latest/api/core/index/ComponentMetadata-class.html
เราสามารถระบุตำแหน่งของเทมเพลตและไฟล์สไตล์ที่สัมพันธ์กับไฟล์คลาสคอมโพเนนต์โดยการตั้งค่าคุณสมบัติ moduleId ของเมตาดาต้า @Component
อ้างอิง: https://angular.io/docs/ts/latest/cookbook/component-relative-paths.html
ตัวอย่างการใช้งาน:
โครงสร้างโฟลเดอร์:
RootFolder
├── index.html
├── config.js
├── app
│ ├── components
│ │ ├── my.component.ts
│ │ ├── my.component.css
│ │ ├── my.component.html
ไม่มีโมดูล. id :
@Component({
selector: 'my-component',
templateUrl: 'app/components/my.component.html', <- Starts from base path
styleUrls: ['app/components/my.component.css'] <- Starts from base path
})
ด้วยโมดูล. id :
tsconfig.json:
{
"compilerOptions": {
"module": "commonjs", <- need to change this if you want to use module.id property
...
@Component({
moduleId: module.id,
selector: 'my-component',
templateUrl: 'my.component.html', <- relative to the components current path
styleUrls: ['my.component.css'] <- relative to the components current path
})