問題タブ [angularjs-injector]

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 投票する
2 に答える
2648 参照

angularjs - 状態に入る前にプロバイダーが終了するのを待ちます

ui-router が状態をロードする前に、プロバイダーの初期化が完了するまで待機しようとしています。

状態に入るたびにカメラを有効にする必要があり、無効のままにしておくと再び無効になります。module.configレベルで使用できるようにする必要があるため、これをプロバイダーに入れました。

と状態:

$q使用してプロミスを作成し、使用resolveしてそれを待機しようとしましたが、module.configレベルでは $q を注入できません (または方法がわからないだけですか?)。

どうすればこれを解決できますか?

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

javascript - 不明なプロバイダー: angular.bootstrap の前に $injector を使用して $location サービスを取得する場合の $rootElementProvider

こんにちは、角度のあるアプリを手動でブートストラップしようとしていますが、最初に処理する必要があるビジネスがあります。この記事では、私が興味を持っているテクニックについて説明します。

これを注入すると:

それはうまくいきますが、これは:

次のエラーをスローします。

angular.bootstrap の前に $location を取得することは可能ですか?

ありがとうございます!

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

javascript - 不明なプロバイダー: userFactoryProvider <- userFactory <- userController

最初に、データを保持するためのコントローラーを作成しましたが、うまくいきました。次に、データを工場に移動しました。工場をコントローラーに注入しました。モジュール/コントローラー/ファクトリーのアドレスも HTML コードに入れていますが、「不明なプロバイダー」というエラーが表示されます

ここに私の工場コードがあります:

ここに私のコントローラーコンデスがあります

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

angularjs - 機能検出に基づく AngularJS サービス インジェクション

私の Angular アプリでは、ブラウザーで利用可能な永続化メカニズムに基づいて具体的な実装を呼び出す永続化サービスインターフェイスを作成する必要があります。ストレージメカニズムを理解する特定の storageService を呼び出す汎用 storageService を使用してこれを実装することを考えています。

たとえば、汎用の storageService は次のインターフェイスを提供します。

storageService には、localStorageService、indexedDbStorageService、webSqlStorageService など、複数の実装があります。

ブラウザの機能に基づいて具体的なストレージ サービスを動的に挿入する最良の方法は何ですか。例えば、

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

angularjs - $provide 構成ブロック外

確かに、インジェクターに関するいくつかの基本的な点が欠けていますが、なぜこれが正確なのか理解できません

この

意図したとおりに動作しますが、これは

投げます

エラー: [$injector:unpr] 不明なプロバイダー: $provideProvider <- $provide

上記からわかるように、configプロバイダーとは特別な関係がありますが、runインスタンスを扱っていますが、configブロックをそれほど特別なものにしている理由についてはわかりません。

その結果、$provide外部configブロックにアクセスする方法はありませんangular.injector()か (プロバイダー インスタンスも取得するようですが)。

この質問には、単なる好奇心に加えて、いくつかの実際的な考慮事項もあります。1.4 ではすべての$provide関数がモジュールに公開されていますが、1.3 ではそうではありません。

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

angularjs - AngularJS の 2 つの異なる $injector

今日、構成またはプロバイダーに注入されることは、サービス、ファクトリ、またはコントローラーに注入されること$injectorとは異なることがわかりました。$injector

そしてget()、この $injectors の機能は異なる動作をします。

$injector構成またはプロバイダーから、get()どのサービスもできません! $injector.get('myService')をスローError: [$injector:unpr] Unknown provider: myServiceしますが、$injector.has('myService')true を返します。それは非常に奇妙です。

$injectorサービスまたはコントローラーからは正常に動作します。

理解を深めるためのコードサンプルを次に示します。

ここにプレイするプランカーがあります

2つの異なるインジェクターがある理由を誰か説明できますか?

そして、プロバイダー/構成から $injector を使用してサービスを注入するにはどうすればよいですか (もちろん、サービスが初期化された後)?

PS私はAngular 1.3.13を使用しています