2016-10-07 12 views
10

तो मैं कोणीय 2 अंतिम (2.0.0) का उपयोग कर रहा हूँ और मान लीजिए कि मैं निर्देशों और घटकों मुझे मेरे आवेदन बनाने में मदद मिलेगी कि का एक समूह के साथ एक WidgetsModule बना सकते हैं, और फिर मेरा AppModule में आयातAngular2 में किसी अन्य मॉड्यूल से मॉड्यूल का उत्तराधिकारी कैसे प्राप्त करें?

import { NgModule }  from '@angular/core'; 
import { UniversalModule } from 'angular2-universal'; 

import { WidgetsModule } from '../../../widgets'; 
import { App, appRouting } from './'; 

@NgModule({ 
    imports:  [ 
    UniversalModule, 
    WidgetsModule, 
    appRouting 
    ], 
    providers: [ AppPresenter ], 
    declarations: [ App ], 
    exports:  [ ], 
    bootstrap: [ App ] 
}) 
export class AppModule { } 

फिर मैं होम मॉड्यूल, कार्ट मॉड्यूल इत्यादि जैसे बच्चों के मॉड्यूल में विजेट का उपयोग करना चाहता हूं। मैं विजेट्स मॉड्यूल को अन्य मॉड्यूल में विजेट्स आयात किए बिना कैसे उपलब्ध कर सकता हूं?

import { NgModule }  from '@angular/core'; 
import { CommonModule } from '@angular/common'; 
import { FormsModule, ReactiveFormsModule } from '@angular/forms' 

import { WidgetsModule } from '../../../widgets'; 
import { Cart, cartRouting } from './'; 

@NgModule({ 
    imports:  [ 
    CommonModule, 
    FormsModule, 
    ReactiveFormsModule, 
    WidgetsModule, //<-- I want to avoid doing this in every module 
    cartRouting 
    ], 
    providers: [ ], 
    declarations: [ Cart ] 

}) 
export class CartModule { } 

क्या ऐसा करने का कोई तरीका है जैसे निर्यात में निर्देश []?

उत्तर

11

यह सीधे उपयोग की जरूरत है vist। इसे साफ़ करने का एक तरीका है हालांकि SharedModule से कई स्थानों में उपयोग किए जाने वाले सभी मॉड्यूल निर्यात करें। तो फिर तुम सिर्फ SharedModule हर जगह

@NgModule({ 
    exports: [ 
    FormsModule, 
    CommonModule, 
    WidgetsModule 
    ] 
}) 
class SharedModule {} 

आप imports उनमें से किसी को SharedModule में जब तक कहते हैं कि तुम SharedModule उन अन्य मॉड्यूल के किसी भी उपयोग करता है में एक घटक की घोषणा कर रहे हैं की जरूरत नहीं है आयात कर सकते हैं।

फिर आपके सभी अन्य मॉड्यूल में, SharedModule। यह इसे बहुत साफ करने के लिए समाप्त होता है, और आपको केवल एक साझा मॉड्यूल को बनाए रखने की आवश्यकता होती है।

भी देखें:

+0

धन्यवाद। मुझे अब दिख रहा है। आपको वास्तव में प्रत्येक मॉड्यूल में मॉड्यूल आयात करना होगा, उदाहरणों का कोई "पुन: उपयोग" नहीं है। हालांकि, कोई समस्या नहीं है। यह साझा मॉड्यूल उपयोगी है! धन्यवाद! – Pstr

0

मैं यह वास्तव में क्योंकि WidgetsModuleFormsModule (@ कोणीय/रूपों) के रूप में ही है की जरूरत नहीं है लगता है। विजेट्स मॉड्यूल उपयोगकर्ता द्वारा परिभाषित मॉड्यूल और कोणीय द्वारा प्रदान किए गए फॉर्म मॉड्यूल है। यही एकमात्र अंतर है। इस मॉड्यूल का उपयोग कुछ कार्यक्षमता के लिए किया जाता है।

तो बस के बारे में सोचना है कि हम कैसे FormsModule एक बार घोषणा और अन्य सभी मॉड्यूल में इसका इस्तेमाल करते हैं, अगर आप समझ गया कि उसके बाद समस्या हल हो जाता है कर सकते हैं। अपनी ही WidgetsModule यह अपने आप FormsModule (एक तरह से या किसी अन्य) के लिए सीधी पहुँच की जरूरत है जैसे

बस नीचे दिए गए लिंक को One single NgModule versus multiples ones with Angular 2

+0

मुझे समझ नहीं आता .. आप एक में मेरी मॉड्यूल शामिल होने के बारे में बात कर रहे आदेश कम दोहराया आयात करने के लिए में,? लेकिन यह मॉड्यूल में कोड को बहुत अधिक से गुणा करता है और Angular2 में मॉड्यूलरिसेशन के विचार को मारता है ... – Pstr

+0

मैं 'मॉड्यूलरिसेशन' ले रहा हूं, आपको एक अलग मॉड्यूल 'विजेट्स मॉड्यूल' बनाने की आवश्यकता है और इसे 'फॉर्म मॉड्यूल' –

+0

हां के रूप में अन्य मॉड्यूल में आयात करें, लेकिन मेरे पास अलग विजेट्स मॉड्यूल है। सवाल यह था कि इसे हर दूसरे मॉड्यूल पर आयात करने के बारे में था या यदि इसे पेरेंट मॉड्यूल के उसी आयात में साझा किया जा सकता है। लेकिन अब मैं समझता हूं कि यह ऐसा नहीं हो सकता है। धन्यवाद! – Pstr

3

मॉड्यूल घटकों, निर्देशों या पाइप कि अन्य मॉड्यूल घोषित किये गए हैं करने के लिए उपयोग के वारिस नहीं है। AppModule आयात क्या संपर्क मॉड्यूल के लिए अप्रासंगिक है और इसके विपरीत। ContactComponent [(ngModel)] से जुड़ सकता है इससे पहले, इसके संपर्क मॉड्यूल को फॉर्म मॉड्यूल आयात करना होगा।

source: ngmodule

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