問題タブ [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.

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

angular - Angular2:同じサービスの2つのインスタンスを複数のコンポーネントに注入する方法は?

次のような Angular Service があるとします。

現在、クリップボード サービスを使用するコンポーネントがいくつかあります。

ヒーローを右クリックすると、それらをコピー/カットできます。後で、同じコンポーネントまたは別のコンポーネントで、ヒーローを貼り付けることができます。このようなもの:

コンポーネントにドラッグ アンド ドロップを追加したいと考えています。興味深いことに、、、canPasteおよびメソッドはドラッグ アンド ドロップと同じですがpaste、次のシナリオを防ぐために、クリップボードの別のインスタンスを使用する必要があります。cutcopy

  1. ユーザーが「バットマン」をカット
  2. ユーザーが「スーパーマン」を新しい場所にドラッグ アンド ドロップする
  3. ユーザーが「バットマン」を貼り付けようとしましたが、残念ながらクリップボードがドラッグ アンド ドロップによって汚染されました。

DragDropクリップボードを拡張するという名前の新しいクラスを作成できます。

これにより、次のように HeroTable を更新できます: j

これにより、クリップボードの 2 つのインスタンスを別のコンポーネントで使用して、どちらがどちらであるかを判断することもできます。切り取り/貼り付けに使用するクリップボードとドラッグ/ドロップに使用するクリップボードをすべてのコンポーネントが認識していることを確認する必要があります。

残念ながら、このソリューションはハックのように感じます。これを行うAngularの祝福された方法はありますか?


この質問を見つけました: Angular2: 同じサービスの複数のインスタンスを使用するには? これは非常に似ているように見えますが、私が提供している詳細を考えると、わずかに異なる応答が得られることを願っています.

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

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 を明示的に呼び出してみましたが、どちらも成功しませんでした。

私は本当に何をすべきかについての考えがありません。助けに感謝します、ありがとう

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

angular - app.module プロバイダーとコンポーネントは Injectable の同じインスタンスを共有していますか?

注入可能な CameraChannelService を ngModule のプロバイダー配列に追加すると:

そのコンポーネントだけの新しいインスタンスを作成しますか? NgModules 宣言コンポーネントの 1 つに挿入すると?

0 投票する
3 に答える
5274 参照

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 をモジュール ローダーとして使用しています。

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

angular - ロケールを検出し、プロバイダーを使用してAngular 2ルートモジュールに設定します

現在のロケールを検出する機能があり、プロバイダーを介してAngular 2ルートアプリモジュールでロケールを設定する必要があります。他のすべてのコンポーネントでそれを使用できるようにします。

私は以下のようにこれを行うことができることを知っています。

{ provide: 'Locale', useValue: 'en-US' }

しかし、可能であれば以下のようなことをしたいです。

{ provide: 'Locale', useValue: this.detectLocale() }

そうでなければ、これを達成するための適切な方法を提案してください。ありがとう。

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

angular - Angular 2 - 404 プロバイダーの問題

Angular 2 アプリケーションにプロバイダーを追加しようとしているときに問題が発生しました。オンラインで見つけたいくつかの解決策を試していましたが、アプリで何が起こっているのかわかりません。

基本的に、プロバイダーをコードに追加すると問題が発生します。

注:パスに問題がないことを確認しましたが、ビジュアル コードでエラーが発生することはありません。

下の画像では、私のアプリの出力を見ることができます。

アプリケーション出力 ここに画像の説明を入力

追加しようとしているサービス: (performances.service.ts)

私の app.component.ts

systemjs.config.js

基本的なプロバイダーを追加するこの問題を抱えているために、私が間違っていることは何か分かりますか? ありがとう!

編集済み

以下に、私が現在使用しているすべての依存関係を示します

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

angular - Ionic2/Angular2 アプリケーションのプロバイダー内のプロバイダー

私は2つのプロバイダーを持っています。

  1. ストレージからの値の設定と取得を担当する AppStorage。

    /li>
  2. 私のAPIサービスであるOauthService。

    /li>

今、私は app.module に両方の注入可能物を追加しています

しかし、アプリを実行していると、oauthService のコンストラクターの appStorage オブジェクトが未定義になります。私がやっている間違いを教えてください。別のサービス内にサービスを注入しているだけです。

0 投票する
3 に答える
2723 参照

angular - Angular 2 のインポート パスが正しく機能しない

アプリ コンポーネントに挿入したサービスがあります。

app.component.ts

私のフォルダ構造は以下の通りです アプリのフォルダー構造

私のサービスは製品フォルダではなく、製品フォルダにあります。インポートステートメントで大文字に変更すると、アプリが「No Provider For ...」を壊します。なぜこれが起こっているのか誰か教えてください。理由がわかりません!!!