1. ホーム
  2. angularjs

[解決済み] AngularJSのサービスをコンソールからテストするにはどうしたらいいですか?

2022-03-23 03:16:32

質問

のようなサービスがあります。

angular.module('app').factory('ExampleService', function(){
  this.f1 = function(world){
    return 'Hello '+world;
  }
  return this;
})

を希望します。 JavaScriptコンソールからテストする を呼び出して、関数 f1() を使用します。

どうすればいいのでしょうか?

どのように解決するのですか?

TLDR:で 一行 をクリックすると、お探しのコマンドが表示されます。

angular.element(document.body).injector().get('serviceName')


ディープダイブ

AngularJSの用途 依存性注入(DI) を使用して、サービス/ファクトリーをコンポーネント、ディレクティブ、およびその他のサービスに注入します。つまり、サービスを取得するために必要なのは インジェクター インジェクターは、すべての依存関係を配線し、コンポーネントに提供する役割を担います。

を取得するために インジェクタ を使用するには、angularが処理する要素から取得する必要があります。例えば、アプリがbody要素に登録されている場合、以下のように呼び出します。 injector = angular.element(document.body).injector()

取得した injector を使えば、どんなサービスでも手に入れることができます。 injector.get('ServiceName')

詳しくはこの回答で。 angularからインジェクタを取得できない
そしてさらにこちらも。 レガシーコードからAngularJSを呼び出す


もう一つの便利な仕掛けは $scope 特定の要素の を持つ要素を選択します。 DOM検査ツール を実行し、次の行( $0 は常に選択された要素である)。
angular.element($0).scope()