2017-03-12 6 views
22

角度CLIでサービスを生成し、単一ステップでapp.module.tsにプロバイダとしてそれを追加したり、特別なオプションを使用することが可能ですng gサービスコマンドでは?角度CLIはサービスを生成し、ワンステップでプロバイダを含む

ときに実行:それに

$ ng g service services/backendApi 
installing service 
    create src/app/services/backend-api.service.spec.ts 
    create src/app/services/backend-api.service.ts 
    WARNING Service is generated but not provided, it must be provided to be used 

WARNING Service is generated but not provided, it must be provided to be used

次に、(警告メッセージに応じて)私は通常app.module.ts使用プロバイダセクションに追加テキストエディタ:

@NgModule({ 
    declarations: [ 
    AppComponent, 
    ... 
    ], 
    imports: [ 
    .... 
    ], 
    providers: [BackendApiService], 
    bootstrap: [AppComponent] 
}) 

これを自動化する1つのステップ?

答えて

49

実際には、サービスの作成時にサービス(またはガードも提供する必要があるため)を提供することは可能です。

コマンドは、次の...

ng g s services/backendApi --module=app.module

編集ある

それだけでなく、あなたがモジュールにそれにパスを与える必要があり、フィーチャモジュールを提供することが可能ですあなたは好きです。

ng g s services/backendApi --module=services/services.module

+0

複数の場所でも提供する方法はありますか? – Spurious

+0

一般に、複数のモジュールでサービスを提供することは悪い習慣です。つまり、CLIは '--module'フラグでこれを許可しません。しかし、あなた自身でそれを行うことはできますが、アプリケーションの上位レベルで提供することをお勧めします。 – delasteve

1

角度CLIを用いて角度4アプリケーションにサービスを追加

それが依存を介して(含めることができるプロパティとメソッドを、関連付けられていると共に、角度2サービスは、単にJavaScript関数であります注入)をAngular 2成分に変換します。

新しいAngular 4サービスをアプリに追加するには、コマンドng g service serviceNameを使用します。サービスの作成には、角度CLIがエラーを示しています。

WARNING Service is generated but not provided, it must be provided to be used

これを解決するために、我々は@NgModule方法のsrc\app\app.module.tsproviders内部入力へのサービス基準を提供する必要があります。

当初、サービスのデフォルトのコードは次のとおりです。


import { Injectable } from '@angular/core'; 

@Injectable() 
export class ServiceNameService { 

    constructor() { } 

} 

サービスは、いくつかのパブリックメソッドを持っている必要があります。

0

Specify paths

--app 
    --one 
    one.module.ts 
    --services 

    --two 
    two.module.ts 
    --services 

Create Service with new folder in module ONE

ng g service one/services/myNewServiceFolderName/serviceOne --module one/one 

--one 
    one.module.ts // service imported and added to providers. 
    --services 
    --myNewServiceFolderName 
     serviceOne.service.ts 
     serviceOne.service.spec.ts 
1

角度5と角度-CLI 1.7のための受け入れ答えから構文のわずかな変化。0

ng g service backendApi --module=app.module 
関連する問題