問題タブ [angular2-providers]
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 - Angular2:同じサービスの2つのインスタンスを複数のコンポーネントに注入する方法は?
次のような Angular Service があるとします。
現在、クリップボード サービスを使用するコンポーネントがいくつかあります。
ヒーローを右クリックすると、それらをコピー/カットできます。後で、同じコンポーネントまたは別のコンポーネントで、ヒーローを貼り付けることができます。このようなもの:
コンポーネントにドラッグ アンド ドロップを追加したいと考えています。興味深いことに、、、canPaste
およびメソッドはドラッグ アンド ドロップと同じですがpaste
、次のシナリオを防ぐために、クリップボードの別のインスタンスを使用する必要があります。cut
copy
- ユーザーが「バットマン」をカット
- ユーザーが「スーパーマン」を新しい場所にドラッグ アンド ドロップする
- ユーザーが「バットマン」を貼り付けようとしましたが、残念ながらクリップボードがドラッグ アンド ドロップによって汚染されました。
DragDrop
クリップボードを拡張するという名前の新しいクラスを作成できます。
これにより、次のように HeroTable を更新できます: j
これにより、クリップボードの 2 つのインスタンスを別のコンポーネントで使用して、どちらがどちらであるかを判断することもできます。切り取り/貼り付けに使用するクリップボードとドラッグ/ドロップに使用するクリップボードをすべてのコンポーネントが認識していることを確認する必要があります。
残念ながら、このソリューションはハックのように感じます。これを行うAngularの祝福された方法はありますか?
この質問を見つけました: Angular2: 同じサービスの複数のインスタンスを使用するには? これは非常に似ているように見えますが、私が提供している詳細を考えると、わずかに異なる応答が得られることを願っています.
angular - Ionic 2 / Angular 2 プロバイダーを解決できない
Ionic 2 を使用していますが、バージョン 2.0.0 以降のプロバイダー/インジェクションに問題があります。私が取得し続けるエラーは次のとおりです(これだけでなく、さまざまなプロバイダーで):
キャッチされないエラー: LoginRedirectService のすべてのパラメーターを解決できません: (App、?、AlertController)。
プロバイダはすべて @Injectable で装飾されていますが、プロバイダのインジェクションの解決に問題があるようです。
1 つのファイル
別のファイル
等々。
また、app.module.ts にすべてのプロバイダーを、注入する必要がある順序で追加しました。
私のプロジェクト構造は次のようになります。
- ソース
- アプリ
- app.module.ts
- app.component.ts
- 資産
- ページ
- プロバイダー
- サブフォルダ
- ...
- アプリ
- package.json など
必要なクラスのコンストラクターで @Inject を明示的に呼び出してみましたが、どちらも成功しませんでした。
私は本当に何をすべきかについての考えがありません。助けに感謝します、ありがとう
angular - app.module プロバイダーとコンポーネントは Injectable の同じインスタンスを共有していますか?
注入可能な CameraChannelService を ngModule のプロバイダー配列に追加すると:
そのコンポーネントだけの新しいインスタンスを作成しますか? NgModules 宣言コンポーネントの 1 つに挿入すると?
angular - Angular2、AoT コンパイル: コンポーネント AppComponent のモジュールを特定できません
概要: Angular2 アプリケーションに Angular2 AoT を使用しようとしていますが、サーバーから Angular2 にいくつかの値を渡す静的プロバイダーがあるため、ngc
いくつかのエラーが表示されます。私の問題は、をngFactory
使用して作成されたファイルを取得する方法ですngc
。
詳細:クックブック ガイドを使用しています。実行すると"node_modules/.bin/ngc" -p tsconfig-aot.json
、次のエラーが表示されます。
tsconfig-aot.json:
パッケージ.json:
index.pug:
main.ts:
app.module.ts:
app.component.ts:
更新 1:コメントで述べたように、サーバーから Angular2、つまり app.module.ts などにデータを渡すために使用した静的プロバイダーのコードを削除すると、正常に動作することを確認しましcreateMainModule()
たngc
。
更新 2: SystemJS をモジュール ローダーとして使用しています。
angular - ロケールを検出し、プロバイダーを使用してAngular 2ルートモジュールに設定します
現在のロケールを検出する機能があり、プロバイダーを介してAngular 2ルートアプリモジュールでロケールを設定する必要があります。他のすべてのコンポーネントでそれを使用できるようにします。
私は以下のようにこれを行うことができることを知っています。
{ provide: 'Locale', useValue: 'en-US' }
しかし、可能であれば以下のようなことをしたいです。
{ provide: 'Locale', useValue: this.detectLocale() }
そうでなければ、これを達成するための適切な方法を提案してください。ありがとう。
angular - Angular 2 - 404 プロバイダーの問題
Angular 2 アプリケーションにプロバイダーを追加しようとしているときに問題が発生しました。オンラインで見つけたいくつかの解決策を試していましたが、アプリで何が起こっているのかわかりません。
基本的に、プロバイダーをコードに追加すると問題が発生します。
- GET http://localhost:3000/dist/services/performances.service 404 (見つかりません)
- エラー: (SystemJS) XHR エラー (404 Not Found) http://localhost:3000/dist/services/performances.service の読み込み中 (…)
注:パスに問題がないことを確認しましたが、ビジュアル コードでエラーが発生することはありません。
下の画像では、私のアプリの出力を見ることができます。
追加しようとしているサービス: (performances.service.ts)
私の app.component.ts
systemjs.config.js
基本的なプロバイダーを追加するこの問題を抱えているために、私が間違っていることは何か分かりますか? ありがとう!
編集済み
以下に、私が現在使用しているすべての依存関係を示します
angular - Ionic2/Angular2 アプリケーションのプロバイダー内のプロバイダー
私は2つのプロバイダーを持っています。
ストレージからの値の設定と取得を担当する AppStorage。
/li>私のAPIサービスであるOauthService。
/li>
今、私は app.module に両方の注入可能物を追加しています
しかし、アプリを実行していると、oauthService のコンストラクターの appStorage オブジェクトが未定義になります。私がやっている間違いを教えてください。別のサービス内にサービスを注入しているだけです。