問題タブ [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.
angularjs - 状態に入る前にプロバイダーが終了するのを待ちます
ui-router が状態をロードする前に、プロバイダーの初期化が完了するまで待機しようとしています。
状態に入るたびにカメラを有効にする必要があり、無効のままにしておくと再び無効になります。module.config
レベルで使用できるようにする必要があるため、これをプロバイダーに入れました。
と状態:
$q
使用してプロミスを作成し、使用resolve
してそれを待機しようとしましたが、module.config
レベルでは $q を注入できません (または方法がわからないだけですか?)。
どうすればこれを解決できますか?
javascript - 不明なプロバイダー: angular.bootstrap の前に $injector を使用して $location サービスを取得する場合の $rootElementProvider
こんにちは、角度のあるアプリを手動でブートストラップしようとしていますが、最初に処理する必要があるビジネスがあります。この記事では、私が興味を持っているテクニックについて説明します。
これを注入すると:
それはうまくいきますが、これは:
次のエラーをスローします。
angular.bootstrap の前に $location を取得することは可能ですか?
ありがとうございます!
javascript - 不明なプロバイダー: userFactoryProvider <- userFactory <- userController
最初に、データを保持するためのコントローラーを作成しましたが、うまくいきました。次に、データを工場に移動しました。工場をコントローラーに注入しました。モジュール/コントローラー/ファクトリーのアドレスも HTML コードに入れていますが、「不明なプロバイダー」というエラーが表示されます
ここに私の工場コードがあります:
ここに私のコントローラーコンデスがあります
angularjs - 機能検出に基づく AngularJS サービス インジェクション
私の Angular アプリでは、ブラウザーで利用可能な永続化メカニズムに基づいて具体的な実装を呼び出す永続化サービスインターフェイスを作成する必要があります。ストレージメカニズムを理解する特定の storageService を呼び出す汎用 storageService を使用してこれを実装することを考えています。
たとえば、汎用の storageService は次のインターフェイスを提供します。
storageService には、localStorageService、indexedDbStorageService、webSqlStorageService など、複数の実装があります。
ブラウザの機能に基づいて具体的なストレージ サービスを動的に挿入する最良の方法は何ですか。例えば、
angularjs - $provide 構成ブロック外
確かに、インジェクターに関するいくつかの基本的な点が欠けていますが、なぜこれが正確なのか理解できません
この
意図したとおりに動作しますが、これは
投げます
エラー: [$injector:unpr] 不明なプロバイダー: $provideProvider <- $provide
上記からわかるように、config
プロバイダーとは特別な関係がありますが、run
インスタンスを扱っていますが、config
ブロックをそれほど特別なものにしている理由についてはわかりません。
その結果、$provide
外部config
ブロックにアクセスする方法はありませんangular.injector()
か (プロバイダー インスタンスも取得するようですが)。
この質問には、単なる好奇心に加えて、いくつかの実際的な考慮事項もあります。1.4 ではすべての$provide
関数がモジュールに公開されていますが、1.3 ではそうではありません。
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を使用しています