6

マルチプロバイダーを使用して、依存関係の依存関係をそれ自体と共にエクスポートしようとしているので、一度にコンポーネントに注入できます。

コンポーネントの場合

import {Component} from 'angular2/core';
import { FOO_PROVIDERS } from './foo';

@Component({
  selector: 'app',
  providers: [FOO_PROVIDERS]
})
export class App {}

import {Inject, Injectable, provide} from 'angular2/core';
import {Http, HTTP_PROVIDERS} from 'angular2/http';

export class Foo {
  constructor(@Inject(Http) http) {}
}

export const FOO_PROVIDERS = [
  provide(Foo, { useClass: Foo, multi: true }),
  provide(Foo, { useValue: HTTP_PROVIDERS, multi: true })
];

結果として

HTTP のプロバイダーがありません! (アプリ -> Foo -> HTTP)

そしてこれ

import {Inject, provide} from 'angular2/core';
import {Http, HTTP_PROVIDERS} from 'angular2/http';

class Foo {
  constructor(@Inject(Http) http) {}
}

export const FOO_PROVIDERS = [Foo, HTTP_PROVIDERS];

私は彼らが同様の仕事をすることを期待していますが、うまくいきます。

この場合、マルチプロバイダーの適切な使用法はありますか?

4

1 に答える 1