2017-03-12 19 views
22

Możliwe jest wygenerowanie usługi kątowej CLI i dodać go jako dostawcy w app.module.ts w jednym etapie lub za pomocą specjalnej opcji w poleceniu ng g service?kątowe CLI wygenerować usługę i obejmują dostawcy w jednym kroku

Kiedy wykonać:

$ 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

Obok niego (i zgodnie z komunikatem ostrzegawczym) I zazwyczaj dodać go do dostawcy punkt na app.module.ts korzystania edytor tekstu:

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

Można to zrobić z jeden krok, aby zautomatyzować to?

Odpowiedz

49

W rzeczywistości możliwe jest świadczenie usługi (lub ochrona, ponieważ musi to być zapewnione) podczas tworzenia usługi.

Polecenie jest następujące ...

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

Edit

Możliwe jest dostarczenie do modułu funkcji, jak dobrze, trzeba dać mu ścieżkę do modułu chciałbyś.

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

+0

Czy istnieje sposób na zapewnienie tego w wielu miejscach? – Spurious

+0

Ogólnie, złą praktyką jest oferowanie usługi w więcej niż jednym module. Powiedział, że CLI nie pozwala na to z flagą '--module'. Możesz jednak zrobić to samemu, ale polecam dostarczenie go na wyższym poziomie w twojej aplikacji. – delasteve

1

dodać usługę kątowej 4 aplikacji za pomocą kątowego CLI

kątową 2 usługi po prostu funkcja JavaScript wraz z nim jego właściwości i metody, które mogą być zawarte powiązane (poprzez zależność wtrysku) na składniki Angular 2. Aby uzyskać nową usługę Angular 4 do aplikacji, użyj polecenia ng g service serviceName. Na stworzeniu serwisu, kątowego CLI pokazuje błąd:

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

Aby rozwiązać ten problem, musimy zapewnić odniesienie serwisu do src\app\app.module.ts wewnątrz providers wejścia @NgModule metody.

Początkowo domyślny kod w służbie jest:


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

@Injectable() 
export class ServiceNameService { 

    constructor() { } 

} 

Usługa musi mieć kilka metod publicznych.

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

niewielkie zmiany w składni z przyjętą odpowiedzi na kątowe 5 i kątowe-cli 1.7.0

ng g service backendApi --module=app.module 
Powiązane problemy