(2017-03-13) के लिए अपडेट करें :
मॉड्यूलआईडी के सभी उल्लेख हटा दिए गए हैं। "घटक सापेक्ष पथ" रसोई की किताब नष्ट कर दिया
हमने अपने अनुशंसित SystemJS विन्यास में एक नया SystemJS प्लगइन (systemjs-angular-loader.js) जोड़ा। यह प्लगइन डायनामिक रूप से "कंपोनेंट-रिलेटिव" पाथ को टेम्प्लेट यूआरएल और स्टाइल यूआरएल में परिवर्तित कर आपके लिए "संपूर्ण पथ" में बदल देता है।
हम आपको केवल घटक-सापेक्ष पथ लिखने के लिए प्रोत्साहित करते हैं। इन डॉक्स में चर्चा किए गए URL का एकमात्र रूप है। अब आपको लिखने की जरूरत नहीं है @Component({ moduleId: module.id })
, न ही आपको।
स्रोत: https://angular.io/docs/ts/latest/guide/change-log.html
परिभाषा:
moduleId?: string
moduleId
@Component
एनोटेशन के अंदर पैरामीटर एक string
मान लेता है जो है;
" मॉड्यूल की मॉड्यूल आईडी जिसमें घटक शामिल है। "
CommonJS उपयोग: module.id
,
SystemJS का उपयोग: __moduleName
उपयोग करने का कारणmoduleId
:
moduleId
आपके स्टाइलशीट और टेम्प्लेट के लिए रिश्तेदार पथ को हल करने के लिए उपयोग किया जाता है जैसा कि यह प्रलेखन में कहता है।
मॉड्यूल की मॉड्यूल आईडी जिसमें घटक होता है। टेम्प्लेट और शैलियों के लिए सापेक्ष यूआरएल को हल करने में सक्षम होने की आवश्यकता है। डार्ट में, यह स्वचालित रूप से निर्धारित किया जा सकता है और इसे सेट करने की आवश्यकता नहीं है। CommonJS में, इसे हमेशा मॉड्यूल.id पर सेट किया जा सकता है।
रेफरी (पुराना): https://angular.io/docs/js/latest/api/core/index/ComponentMetadata-class.html
हम घटक श्रेणी फ़ाइल के सापेक्ष टेम्पलेट और शैली फ़ाइलों के स्थानों को केवल @Componate मेटाडेटा के मॉड्यूलआईडी गुण सेट करके निर्दिष्ट कर सकते हैं
रेफरी: 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
Module.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
})
मॉड्यूल के साथ :
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
})