0

特定のモジュールからangular jsでプログラムでサービスを解決しようとしていますが、それを行う正しい方法が見つかりません。

angular.injector(['NameOfModule']).get('NameOfService') を使用してサービスを取得できることを知っています。ただし、 angular.injector を使用すると、指定されたモジュールのインジェクターが取得されず、代わりに新しいインジェクターが作成されます。これは、サービスを取得するときに、新しいインジェクターであるため、サービスがキャッシュされていないため、新しいサービスを作成することを意味します。これは、同じサービスがいくつかあることを意味するため、明らかに問題を引き起こすシングルトンではなくなります。

私が本質的にやりたいことは、特定のモジュールからインジェクターを取得して、そのインジェクターから (キャッシュされているかどうかに関係なく) サービスを取得できるようにすることです。これを達成する方法を知っている人はいますか?

4

1 に答える 1

1

私が提案するのは、 $injector サービスを使用したいコントローラー\サービスに注入することです。これは、アプリが使用しているインジェクターを返し、angular.injector のように新しいインジェクターを作成しません。このSO投稿の詳細な説明を参照してください角度からインジェクターを取得できません

于 2013-09-26T12:06:58.810 に答える