私はプロバイダが別のクラスからサービスを受けることを理解していますが、マルチプロバイダとトークンは何ですか?angular2のマルチプロバイダとは
また、私たちが行うときmulti=true
? multi: true
を使用
provide(NG_VALIDATORS, { useExisting: class), multi: true })
私はプロバイダが別のクラスからサービスを受けることを理解していますが、マルチプロバイダとトークンは何ですか?angular2のマルチプロバイダとは
また、私たちが行うときmulti=true
? multi: true
を使用
provide(NG_VALIDATORS, { useExisting: class), multi: true })
は、プロバイダがマルチプロバイダであること角度を伝えます。前述のように、マルチプロバイダでは、DIの単一のトークンに対して複数の値を提供できます。
用途:
我々は自動的に誰もがコンポーネントの装飾でそれらを定義することなく、私達の全体のアプリケーションで利用可能であるべきディレクティブのカップルを持っている場合、我々はマルチプロバイダを利用することと拡張することによってそれを行うことができますPLATFORM_DIRECTIVES
の注射対象は何ですか?
@Directive(...)
class Draggable { }
@Directive(...)
class Morphable { }
@Component(...)
class RootCmp { }
とドキュメントから
// at bootstrap
bootstrap(RooCmp, [
provide(PLATFORM_DIRECTIVES, {useValue: Draggable, multi: true}),
provide(PLATFORM_DIRECTIVES, {useValue: Morphable, multi: true})
]);
:
は同じトークン(マルチプロバイダ)と一致複数のプロバイダを作成します。 システムにはいくつかのデフォルトプロバイダが付属しており、ユーザーは 追加プロバイダを登録することができるプラグイン可能なサービスの作成にマルチプロバイダが使用されます。既定のプロバイダーと追加のプロバイダーの組み合わせは、システムの動作を推進するために使用されます。
multi: true
1つのプロバイダトークンは要素のアレイを提供することを意味します。たとえば、ルータサポートのすべてのディレクティブrouterLink
,router-outlet
はROUTER_DIRECTIVES
によって提供されています。
新しいプロバイダがトークンROUTER_DIRECTIVES
に登録されている場合、以前に登録されたディレクティブよりも優先されます。 multi: true
(最初の登録済みと新しいプロバイダの)が設定されている場合、新しいディレクティブは、上書きされる代わりに、以前に登録されたディレクティブに追加されます。
ROUTER_DIRECTIVES
が注入されると(constructor(@Inject(ROUTER_DIRECTIVES) directives) {}
)、指示インスタンスの配列が注入されます。通常、ROUTER_DIRECTIVES
を注射するのは意味がありません。 multi: true
なので、例として使用しました。
有用な場合の例を教えてください – theFreedomBanana
https:// stackoverflowの例を参照してください。アプリケーションが起動する前の/ config/39033835/angularjs2-preload-server-configuration-39033958#39033958複数のファクトリ関数が 'APP_INITIALIZERS'の下で提供され、Angularはそれらのそれぞれを)返された 'Promise'を待ちます。 –
DI – blackHawk
の単一トークンに複数の値を指定するとはどういう意味ですか? –
関数が次のように宣言した場合、それはどういう意味ですか:private get isReverse()何がキーワードを取得するか – blackHawk