問題タブ [angular2-injection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
31324 参照

typescript - Angular 2 HTTP「「AppService」のすべてのパラメーターを解決できません」

http プロバイダーをサービスにインポートしようとしましたが、次のエラーが発生します。

「AppService」(?) のすべてのパラメーターを解決できません。すべてのパラメーターが Inject で装飾されているか、有効な型注釈があり、「AppService」が Injectable で装飾されていることを確認してください。

以下にいくつかのコード スニペットを示します。

boot.ts

app.service.ts

サーバーでコントローラーを呼び出して、最終的に JSON ファイルをデータ テーブルにロードしようとしています。非常に簡単なことですが、Http モジュールをロードする方法が間違っているようです。どんな助けでも大歓迎です。

0 投票する
0 に答える
75 参照

dependency-injection - Angular2には、子を作成せずに現在のインジェクターに注入する方法があります

現在のコンポーネント インジェクターを操作する方法を探しています。私は使用できることを知っています:

コンストラクター (プライベート インジェクター: インジェクター) { }

インジェクターを取得しますが、子インジェクターを作成するのではなく、現在のインジェクターにサービスを追加できるメソッドが公開されていません。それで、これは不可能ですか、それとも何ですか?

0 投票する
2 に答える
7336 参照

angular - アプリの初期化時にのみAngular 2コールサービス

私が達成しようとしているのは、アプリの初期化ごとに 1 回だけ外部 API を呼び出すことです。

簡単なサービスがありますが、

そして2つのコンポーネント、メインappComponent

およびルートで使用される別のコンポーネント

サービスが初期化され、Angular は の初期化時にサーバーにヒットしますAppComponent。からサービスを再度呼び出そうとするたびにXService、( 経由で) Angular が外部 API にヒットします。外部からのヒットを最小限に抑えたい。SecondComponentSecondComponent_service._service.callAnAPI()

AppComponentでサービスを再度呼び出すよりも、初期化で作成されたデータを取得するにはどうすればよいですかSecondComponent

0 投票する
1 に答える
3104 参照

angular - クラス配列を挿入する

私は MetaManager クラスを持っています:

このクラスは、Handler[]ハンドラーとして登録する必要があります。それよりも、メタデータを取得したら、handlers 配列をループして、メタ エントリを処理できるのはどれかを確認します。

そうは言っても、問題は、main.ts で構成としてクラスの配列を提供できないことです。

文字列エントリの使用 ( @Provide('HANDLERS')MetaManager の注釈付き:

インターフェイスを使用してハンドラーを提供する:

Handler[]クラス プロバイダーの使用:

MetaManager将来、複数の Handler 、通知、エラーなどが必要になるため、クラス配列を提供したい...

編集:

マルチプロバイダーを使用するとNo provider for Array! (ApiService -> MetaManager -> Array)エラーが発生します:

meta-manager.ts:

main.ts:

0 投票する
5 に答える
99953 参照

angular - コンストラクター注入なしでサービスのインスタンスを取得する

@Injectableブートストラップで定義されたサービスがあります。コンストラクター注入を使用せずにサービスのインスタンスを取得したい。使ってみReflectiveInjector.resolveAndCreateましたが、新しいインスタンスを作成しているようです。

私がやろうとしている理由は、多くのコンポーネントから派生した基本コンポーネントがあるからです。サービスにアクセスする必要がありますが、すべての派生コンポーネントにサービスを注入したくないため、サービスを ctor に追加したくありません。

TLDR:私は必要ですServiceLocator.GetInstance<T>()

更新: RC5+ の更新されたコード:コンポーネントで使用するためのインジェクター インスタンスの保存

0 投票する
1 に答える
2879 参照

angular - Angular 2 で ComponentResolver を使用してコンポーネントをロードしながら、さまざまなプロバイダーを注入する

コンポーネントを動的にロードする際に、別のプロバイダーを注入できますか?

私のコンポーネント

何処か別の場所、

上記のコードでは、解決中MyComponentにこれのプロバイダーMyComponentServiceも解決されますが、いくつかのスイッチに基づいて別の方法で解決できますか?