2016-09-21 24 views
5

gelen hizmetler:Angular2 ithalat bileşenleri/I (şu anda) iki modül olan bir Angular2 nihai uygulama üzerinde çalışıyorum modülünden

  • CoreModule: İçeren paylaşılan bileşenleri, hizmetler.
  • 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: Bunu çalıştırmayı denediğinizde

    /** 
    * 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 {} 
    

    , ben olsun şu:

    uygulaması

AppModule kök modülü

HATA içinde ./src/view/app- modül/app.module.ts (11,9): hata TS2305: Modülü '"/Users/jamdahl/Web/Web-Scratch/Angular2-Express-Mongoose/src/view/core-module/core.module" ' ,' UserService 'ihraç edilen üyeye sahip değil.

./src/view/app-module/app.module.ts (11,22) içinde

HATA: Hata TS2305: Modül '"/ Users/jamdahl/Web/Web Çizilmeye/Angular2-ekspres Mongoose/src/view/core-module/core.module "' dışa aktarılan üye' AuthService 'yok.

./src/view/app-module/app.module.ts (11,35) içinde

HATA: Hata TS2305: Modül '"/ Users/jamdahl/Web/Web Çizilmeye/Angular2-ekspres Mongoose/src/view/core-module/core.module "' dışa aktarılan üye' AuthComponent 'yok.

Bunun neden çalışmadığı konusunda herhangi bir fikrin var mı? Buradaki amacım, oluşturacağım diğer modüller boyunca yeniden kullanılacak bir modülde belirli bileşenleri/hizmetleri tanımlamaktır. Bunu yapmanın doğru yolunu bulmanız gerekiyor ...

Yardımlarınız için teşekkür ederiz! Bir NgModule ürününün exports ürününe eklenmesinin gerekmediği durumlar.

cevap

9

senin CoreModule içi veya şimdi AppModule içi gibi

provide onlara ama orijinal Dosyadan içe ...

Veya CoreModule bir export {AuthService} from '..File..' ekleyin.

Sadece import Bileşenleri ve Hizmetleri bir Dosyadan export ed. Ve bir Modülün exports bölümünde bulundukları yer değil. Bu bir Köşeli şey değil, Açısal bir şey! :)

+4

Bu çok yararlı, ama kafam karıştı. Tüm bileşen/hizmet dosyalarını el ile içe aktarmanız gerekiyorsa, modüllerin kullanılmasında ne gibi bir avantaj var? – jrdnmdhl

+3

En büyük nokta, bu Bileşenleri derleme için modüllere ayırmaktı. Ve sen yük modülleri tembel .. yapabiliyorsun ama yine de onu kullanmak için doğru ithalatı yapmak zorundasın .. :) Bu kesinlikle kafa karıştırıcı, evet .. – mxii