問題タブ [angular2-di]
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.
angular - Angular 2 Di が機能しない - のすべてのパラメータを解決できません
正常に動作する単純な Hello World アプリを作成しました。しかし、「サービス」を単純な Di だけに追加したい場合、次のエラーが発生しました。
angular2.dev.js:23877 例外: 「AppComponent」(?) のすべてのパラメーターを解決できません。すべてのパラメーターが Inject で装飾されているか、有効な型注釈があり、'AppComponent' が Injectable で装飾されていることを確認してください。
angular2-polyfills.js:469 未処理の Promise 拒否:「AppComponent」(?) のすべてのパラメーターを解決できません。すべてのパラメーターが Inject で装飾されているか、有効な型注釈があり、'AppComponent' が Injectable で装飾されていることを確認してください。; ゾーン: 角度; タスク: Promise.then ; 価値:
私は3つのファイルを持っています
boot.ts:
mainApp.ts:
course.service.ts:
コンストラクターからパラメーターを削除すると、すべてが正常に機能します。
これが私の HTML ドキュメントの先頭であり、angular 2 beta 13 を使用しています。
これらを更新して、私の固定 csproj TypeScript 設定になりました
最新の VS 2015 Update では、tsconfig.json も使用できます。その場合、TypeScript のソリューション設定は無視されます。私の tsconfig.json の現在の例:
angular - angular 2 (2.0.0-rc1) コードで子インジェクターを作成する方法
プロバイダーを動的に追加するために作成された新しいインジェクターで次のコードを呼び出す必要があります。
親がコンポーネントインジェクターである子インジェクターを作成する方法について、インターネット上で例を見つけることができません。何か案は?
ReflectiveInjector
(メソッドを呼び出すことができるように)を5月のコンポーネントに注入しようとしましたresolveAndCreateChild
が、実行時にそのクラスのプロバイダーがないという例外が発生しました。
angular - コンストラクター注入なしでサービスのインスタンスを取得する
@Injectable
ブートストラップで定義されたサービスがあります。コンストラクター注入を使用せずにサービスのインスタンスを取得したい。使ってみReflectiveInjector.resolveAndCreate
ましたが、新しいインスタンスを作成しているようです。
私がやろうとしている理由は、多くのコンポーネントから派生した基本コンポーネントがあるからです。サービスにアクセスする必要がありますが、すべての派生コンポーネントにサービスを注入したくないため、サービスを ctor に追加したくありません。
TLDR:私は必要ですServiceLocator.GetInstance<T>()
更新: RC5+ の更新されたコード:コンポーネントで使用するためのインジェクター インスタンスの保存
dependency-injection - angular2 にシングルトン サービスを注入する
コンポーネントと他のサービスの間でデータを共有するためのサービスがあります。angularのDIを使用してコンポーネントとサービスに注入しています。サービスは、一部のデータをそのプロパティに (非静的に) 格納します。また、ComponentResolver を使用して、コンポーネントを動的に作成およびロードし、それらを破棄します。問題は...単純に次を使用してコンポーネントにそのようなサービスを挿入した場合です。
このサーバーの新しいインスタンスが毎回注入され、データが失われます。データを静的に保存することもできますが、このデータをサブスクライブするオブザーバーが存在します。簡単に言えば、静的変数にリファクタリングするにはあまりにも多くのことがありました。このサービスのインスタンスを 1 つだけ作成し、すべてのインジェクションで共有するように angular の DI に指示する方法はありますか?
angular - Angular 2 DI 未定義クラス
現在、ある種の設定クラスをアプリケーションに挿入しようとしています。
これは私の設定クラスです...
私が次にやろうとしているのは、アプリケーション全体に注入することです (設定は頻繁に使用されるため)。これについては、bootstrap() 関数を使用してこれを行うのが最善の方法だと思います。だから、これは私のブートストラップ関数です:
apiUrl設定を使用したいサービスのコンストラクターに挿入しました:
しかし、何らかの理由でアプリケーションを実行すると、コンストラクターの最初のパラメーター (_settings) が未定義であるというエラーが UserService に表示されました..
私はさまざまなことを試してきましたが、まだ有効な解決策を見つけていません..