5

サービスを使用するコンポーネントがあります。コンポーネントは次のようになります。

@Component({
    moduleId: module.id,
    selector: 'test',
    providers: [HTTP_PROVIDERS, TestService]
})
export class TestComponent implements OnInit {

    constructor(private _testService:TestService) {
    }

ご覧のとおりHTTP_PROVIDERS、コンポーネントにプロバイダーを追加しました。DIがhttpクラスを認識しているため、これは機能しました。ただし、クラスTestServiceを実際に使用していたのは my ではなく、 my でした。HttpTestComponent

@Injectable()
export class TestService {

    constructor(private _http:Http) {
    }

Httpクラスを使ったサービスなので、プロバイダ自体を含めたものであるべきだと感じました。TestComponentプロバイダが何TestServiceを必要とするかはわかりません。

サービス クラスにはそのコンポーネント デコレータがないため、実際にプロバイダを追加する方法がわかりません。Serviceプロバイダーをクラスに追加するにはどうすればよいですか?

4

1 に答える 1

3

What you can do is,

Inject HTTP_PROVIDERS into bootstrap function ,

import {HTTP_PROVIDERS} from '@angular/http';
bootstrap(AppComponent,[HTTP_PROVIDERS]);

and in your service,

import {Http} from '@angular/http';

@Injectable()
export class TestService {
    constructor(private _http:Http) {}
}
于 2016-07-10T07:46:59.280 に答える