2017-03-12 19 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] 
}) 

可以這樣做一個步驟,自動化這?

回答

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

將服務添加到該角4應用程序中使用角CLI

的角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方法providers輸入服務參考src\app\app.module.ts

最初,服務的默認密碼是:


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

角爲5和角-CLI 1.7在語法
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

輕微變化從接受的答案。0

ng g service backendApi --module=app.module 
相關問題