2016-12-01 15 views
0

私はanglejsアプリケーションをビルドしました。私は多くの場所で使用されているjavascript console関数です。 ここでは、コンソールをオフにするために1つの変数を使用したいと考えています。 私はコンソール機能を使用するたびに毎回変数をチェックしたくありません。 私はそのプロセスを処理するサービスを作ることに決めました。angularjsで関数呼び出し元を見つける方法

コンソールの工場

AppModule 
.factory("$console", function (ENV) { 
    function log (txt) { 
     var args = arguments; 
     if(ENV.debug) { 
      console.log.apply(this, args); 
     } 
    } 
    ... 
    ... 
}); 

そして、私は、次の方法のように、その関数を呼び出しました。

コントローラ

AppModule 
.controller('CommonCtrl', function ($scope, $console 
    $scope.personalInfo = function() { 
      $scope.errmsg = false; 
      getPersonalInfo(function (data) { 
       if(!$scope.errmsg) { 
        $console.log("userdatainfo:",data); 
       } 

       ... 
       ... 
    }) 
}); 

すべてが完璧に働いています。 しかし、検査パネル上の工場ファイルの行番号しか見ることができないという問題があります。 上記のコントローラファイルの行番号のように、ファクトリ関数が呼び出される場所から行番号を取得する必要があります。 貴重なご意見をお寄せください。

+1

なぜ 'log'で行ったのと同じ方法で' console.trace() 'を使用しないのですか? –

答えて

1

これはjavascriptの機能であり、特にAngularではありません。このような関数で引数を使うことができます。ただし、行番号は指定されていませんが、発信者名を取得します。

function Hello() 
{ 
    console.log("caller is " + arguments.callee.caller.toString()); 
} 
関連する問題