問題タブ [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.
typescript - Angular 2 HTTP「「AppService」のすべてのパラメーターを解決できません」
http プロバイダーをサービスにインポートしようとしましたが、次のエラーが発生します。
「AppService」(?) のすべてのパラメーターを解決できません。すべてのパラメーターが Inject で装飾されているか、有効な型注釈があり、「AppService」が Injectable で装飾されていることを確認してください。
以下にいくつかのコード スニペットを示します。
boot.ts
app.service.ts
サーバーでコントローラーを呼び出して、最終的に JSON ファイルをデータ テーブルにロードしようとしています。非常に簡単なことですが、Http モジュールをロードする方法が間違っているようです。どんな助けでも大歓迎です。
dependency-injection - Angular2には、子を作成せずに現在のインジェクターに注入する方法があります
現在のコンポーネント インジェクターを操作する方法を探しています。私は使用できることを知っています:
コンストラクター (プライベート インジェクター: インジェクター) { }
インジェクターを取得しますが、子インジェクターを作成するのではなく、現在のインジェクターにサービスを追加できるメソッドが公開されていません。それで、これは不可能ですか、それとも何ですか?
angular - アプリの初期化時にのみAngular 2コールサービス
私が達成しようとしているのは、アプリの初期化ごとに 1 回だけ外部 API を呼び出すことです。
簡単なサービスがありますが、
そして2つのコンポーネント、メインappComponent
およびルートで使用される別のコンポーネント
サービスが初期化され、Angular は の初期化時にサーバーにヒットしますAppComponent
。からサービスを再度呼び出そうとするたびにXService
、( 経由で) Angular が外部 API にヒットします。外部からのヒットを最小限に抑えたい。SecondComponent
SecondComponent
_service._service.callAnAPI()
AppComponent
でサービスを再度呼び出すよりも、初期化で作成されたデータを取得するにはどうすればよいですかSecondComponent
angular - クラス配列を挿入する
私は MetaManager クラスを持っています:
このクラスは、Handler[]
ハンドラーとして登録する必要があります。それよりも、メタデータを取得したら、handlers 配列をループして、メタ エントリを処理できるのはどれかを確認します。
そうは言っても、問題は、main.ts で構成としてクラスの配列を提供できないことです。
文字列エントリの使用 ( @Provide('HANDLERS')
MetaManager の注釈付き:
インターフェイスを使用してハンドラーを提供する:
Handler[]
クラス プロバイダーの使用:
MetaManager
将来、複数の Handler 、通知、エラーなどが必要になるため、クラス配列を提供したい...
編集:
マルチプロバイダーを使用するとNo provider for Array! (ApiService -> MetaManager -> Array)
エラーが発生します:
meta-manager.ts:
main.ts:
angular - コンストラクター注入なしでサービスのインスタンスを取得する
@Injectable
ブートストラップで定義されたサービスがあります。コンストラクター注入を使用せずにサービスのインスタンスを取得したい。使ってみReflectiveInjector.resolveAndCreate
ましたが、新しいインスタンスを作成しているようです。
私がやろうとしている理由は、多くのコンポーネントから派生した基本コンポーネントがあるからです。サービスにアクセスする必要がありますが、すべての派生コンポーネントにサービスを注入したくないため、サービスを ctor に追加したくありません。
TLDR:私は必要ですServiceLocator.GetInstance<T>()
更新: RC5+ の更新されたコード:コンポーネントで使用するためのインジェクター インスタンスの保存
angular - Angular 2 で ComponentResolver を使用してコンポーネントをロードしながら、さまざまなプロバイダーを注入する
コンポーネントを動的にロードする際に、別のプロバイダーを注入できますか?
私のコンポーネント
何処か別の場所、
上記のコードでは、解決中MyComponent
にこれのプロバイダーMyComponentService
も解決されますが、いくつかのスイッチに基づいて別の方法で解決できますか?