2017-01-09 17 views
7

मुझे संदेह है कि कोणीय 2 में मॉड्यूल के बीच घटकों को कैसे साझा किया जाए। बिंदु यह है: मेरे पास ऐप, 'ग्राहक मॉड्यूल' और 'आपूर्तिकर्ता मॉड्यूल' में दो मॉड्यूल हैं।कोणीय 2 में मॉड्यूल के बीच घटकों को कैसे साझा करें?

इन दोनों मॉड्यूल, उनके घटकों में, पता कॉम्पोनेंट और ईमेलकंपोनेंट का उपयोग करते हैं। वे दोनों इंटरफेस पता और ईमेल का उपयोग भी करते हैं।

अब, वर्तमान में मेरे पास बहुत सारे नकल हैं, क्योंकि मैंने इन घटकों की प्रतिलिपि बनाई है और दोनों मॉड्यूल पर इंटरफेस चिपकाया है। यह स्पष्ट रूप से बस सादा गलत है।

मुझे मॉड्यूल दोनों पर उपयोग किए जाने वाले घटकों को आयात करने का एक तरीका चाहिए। लेकिन मुझे यह नहीं पता कि इसे कैसे किया जाए।

क्या मुझे इस साझा सामग्री के लिए एक और मॉड्यूल बनाना चाहिए और इसे दोनों में आयात करना चाहिए? कोणीय 2 में मॉड्यूल के बीच घटकों को साझा करने का सही तरीका क्या है?

उत्तर

9

साझा NgModule बनाएं जो सभी सामान्य Component/Service/Pipe होगा। ऐसा करके आप कोड डुप्लिकेशन से बचेंगे। यह कोड मॉड्यूलरिज़, प्लग-सक्षम & टेस्टेबल बना देगा।

आदेश अन्य मॉड्यूल में AddressComponent & EmailComponent उपयोग करने के लिए, आप उन्हें साझा मॉड्यूल से export की जरूरत है: SharedModule उपभोक्ता जबकि

कोड

@NgModule({ 
    imports: [CommonModule], 
    declarations: [AddressComponent, EmailComponent], 
    providers: [MySharedService], 
    exports: [AddressComponent, EmailComponent], 
}) 
export class SharedModule() { } 

, तुम सब करने की ज़रूरत है आयात SharedModule

@NgModule({ 
    imports: [CommonModule, SharedModule, ... ], 
    providers: [..] 
}) 
export class CustomersModule() { } 
+1

मुझे नहीं लगता कि यह काम करता है, घटकों को दो बार घोषित नहीं कर सकता: http://stackoverflow.com/a/39927548/777285 –

+0

@ अर्नुनाप सिर के लिए धन्यवाद, मैंने अनावश्यक घोषणा को हटा दिया था, धन्यवाद;) –

+0

असल में यह है अन्य तरीकों से: साझा मॉड्यूल घटक (ओं) घोषित करने वाला एकमात्र होना चाहिए। और उपभोक्ताओं को केवल साझा मॉड्यूल आयात करने की आवश्यकता है। उपरोक्त मामले में –

संबंधित मुद्दे