2017-02-10 8 views
2

サードパーティのnpmパッケージを使用しています。このパッケージには、このコードでApiModuleが含まれています。私のAngular2アプリで 処理されていないPromiseの拒否、サービスのプロバイダがありません

import { PlansService } from './api/plans.service'; 
import { UsersService } from './api/users.service'; 
@NgModule({ 
    imports:  [ CommonModule, HttpModule ], 
    declarations: [], 
    exports:  [], 
    providers: [ PlansService, UsersService ] 
}) 
export class ApiModule { 
    public static forConfig(configuration: Configuration): ModuleWithProviders { 
     return { 
      ngModule: ApiModule, 
      providers: [ {provide: Configuration, useValue: configuration}] 
     } 
    } 
} 

は、私がメイン AppModule + AppComponentLoginModule + LoginComponentを使用しています。

これはAppModuleのコードです:

@NgModule({ 
    bootstrap: [ App ], 
    declarations: [ 
    App, 
    ErrorComponent 
    ], 
    imports: [ // import Angular's modules 
    BrowserModule, 
    ApiModule, <<<<<<<<<<<<<<<<<<<<<<<<<< 
    FormsModule, 
    HttpModule, 
    RouterModule.forRoot(ROUTES, { useHash: true }) 
    ], 
    providers: [ 
    ENV_PROVIDERS, 
    APP_PROVIDERS 
    ] 
}) 
export class AppModule { 

あなたはLoginModuleがルートによってロードされている見ることができるように。私LoginComponent

@NgModule({ 
    declarations: [ 
    LoginComponent 
    ], 
    imports: [ 
    CommonModule, 
    ReactiveFormsModule, 
    AlertModule, 
    ApiModule, <<<<<<<<<<<<<<<<<<<<<<<<<<< 
    RouterModule.forChild(routes), 
    ] 
}) 
export default class LoginModule { 
    static routes = routes; 
} 

私はUsersServiceは、コンストラクタのパラメータとして注入されていることをしようとしている:これはLoginModuleのコードです。それにもかかわらず、それは私に言っている:

未処理プロミス拒否:UsersServiceのプロバイダはありません!

export class LoginComponent implements OnInit { 

    constructor(private commty: UsersService) { ... } 

任意のアイデア?

+0

これを解決できましたか? –

答えて

0

LoginModuleにuserServiceを注入しようとする場合、LoginModuleにプロバイダとして追加する必要があります。

@NgModule({ 
    declarations: [ 
    LoginComponent 
    ], 
    imports: [ 
    CommonModule, 
    ReactiveFormsModule, 
    AlertModule, 
    ApiModule, <<<<<<<<<<<<<<<<<<<<<<<<<<< 
    RouterModule.forChild(routes), 
    ], 
providers: [UsersService ] 
}) 
export default class LoginModule { 
    static routes = routes; 
} 
関連する問題