2016-09-21 19 views
5

मैं एक Angular2 अंतिम आवेदन जो (वर्तमान में) दो मॉड्यूल है पर काम कर रहा हूँ से सेवाएं:Angular2 आयात घटक/मॉड्यूल

  • CoreModule: शामिल साझा घटकों, सेवाओं।
  • AppModule:

    /** 
    * Created by jamdahl on 9/21/16. 
    */ 
    
    // Angular Imports 
    import {NgModule} from '@angular/core'; 
    import {BrowserModule} from '@angular/platform-browser'; 
    import {HttpModule} from '@angular/http'; 
    import {FormsModule, ReactiveFormsModule} from '@angular/forms'; 
    import {CoreModule} from '../core-module/core.module'; 
    import {UserService, AuthService, AuthComponent} from '../core-module/core.module'; 
    
    // Components 
    import {HomePageComponent} from './components/home-page.component'; 
    
    //import {enableProdMode} from '@angular/core'; 
    //enableProdMode(); 
    
    @NgModule({ 
        imports: [ 
         BrowserModule, 
         HttpModule, 
         FormsModule, 
         ReactiveFormsModule, 
         CoreModule 
        ], 
        declarations: [ 
         AuthComponent, 
         HomePageComponent 
        ], 
        providers: [ 
         AuthService, 
         UserService 
        ], 
        bootstrap: [ 
         HomePageComponent 
        ] 
    }) 
    export class AppModule {} 
    

    CoreModule: निम्नलिखित

    /** 
    * Created by jamdahl on 9/21/16. 
    */ 
    
    // Angular imports 
    import {NgModule} from '@angular/core'; 
    import {BrowserModule} from '@angular/platform-browser'; 
    import {HttpModule} from '@angular/http'; 
    import {FormsModule, ReactiveFormsModule} from '@angular/forms'; 
    
    // Class imports 
    import {User} from './classes/user.class'; 
    import {Alert} from './classes/alert.class'; 
    
    // Service imports 
    import {AuthService} from './services/auth.service'; 
    import {UserService} from './services/user.service'; 
    
    // Component imports 
    import {AuthComponent} from './components/auth.component'; 
    import {SignInComponent} from './components/signin.component'; 
    import {SignUpComponent} from './components/signup.component'; 
    
    //import {enableProdMode} from '@angular/core'; 
    //enableProdMode(); 
    
    @NgModule({ 
        imports: [ 
         BrowserModule, 
         HttpModule, 
         FormsModule, 
         ReactiveFormsModule 
        ], 
        declarations: [ 
         AuthComponent, 
         SignInComponent, 
         SignUpComponent 
        ], 
        providers: [], 
        exports: [ 
         User, 
         Alert, 
         AuthService, 
         UserService, 
         AuthComponent 
        ] 
    }) 
    export class CoreModule {} 
    

    जब मैं इसे चलाने के लिए प्रयास करते हैं, मैं:

    आवेदन

AppModule की जड़ मॉड्यूल

ERROR में ./src/view/app- मॉड्यूल/app.module.ts (11, 9): त्रुटि टीएस 2305: मॉड्यूल '"/Users/jamdahl/Web/Web-Scratch/Angular2-Express-Mongoose/src/view/core-module/core.module" ' में कोई निर्यात सदस्य' उपयोगकर्ता सेवा 'नहीं है।

./src/view/app-module/app.module.ts (11,22) में

त्रुटि: त्रुटि TS2305: मॉड्यूल ' "/ उपयोगकर्ताओं/jamdahl/वेब/वेब-खरोंच/Angular2-एक्सप्रेस- Mongoose/src/view/core-module/core.module " में कोई निर्यात सदस्य 'AuthService' नहीं है।

./src/view/app-module/app.module.ts (11,35) में

त्रुटि: त्रुटि TS2305: मॉड्यूल ' "/ उपयोगकर्ताओं/jamdahl/वेब/वेब-खरोंच/Angular2-एक्सप्रेस- Mongoose/src/view/core-module/core.module " में कोई निर्यात सदस्य 'AuthComponent' नहीं है।

कोई विचार क्यों यह काम नहीं कर रहा है? मेरा लक्ष्य यहां मॉड्यूल में कुछ घटकों/सेवाओं को परिभाषित करना है जो कि मैं बनाएगा अन्य मॉड्यूल में पुन: उपयोग किया जा सकता है। ऐसा करने का सही तरीका जानने की आवश्यकता है ...

किसी भी मदद के लिए धन्यवाद!

उत्तर

9

सेवाओं को NgModule के exports में जोड़ने की आवश्यकता नहीं है।

provide उन्हें अपने CoreModule के अंदर या अब अपनी AppModule के अंदर की तरह है, लेकिन उन्हें उनके मूल फ़ाइल से आयात ...

या अपने CoreModule के लिए एक export {AuthService} from '..File..' जोड़ें।

आप केवल import फ़ाइल से घटक और सेवाएं जहां वे export एड हैं। और जहां वे मॉड्यूल के exports अनुभाग में नहीं हैं .. यह एक टाइपस्क्रिप्ट चीज है और एक कोणीय चीज नहीं है! :)

+4

यह बहुत उपयोगी है, लेकिन मैं उलझन में हूं। मॉड्यूल का उपयोग करने में क्या फायदा है यदि आपको मैन्युअल रूप से सभी घटक/सेवा फ़ाइलों को मैन्युअल रूप से आयात करना है? – jrdnmdhl

+3

सबसे बड़ा बिंदु उन घटकों को संकलन के लिए मॉड्यूल में बंडल करना था। और आप आलसी लोड मॉड्यूल में सक्षम हैं .. लेकिन आपको अभी भी इसका उपयोग करने के लिए सही आयात करना है .. :) यह भ्रामक भरोसा कर रहा है, हाँ .. – mxii