私は現在、Angular 1.5アプリをプロファイリング中です。この演習の一環として、各ディレクティブのリストとその呼び出し回数を出力しようとしています。カスタムディレクティブと組み込みディレクティブ(ng-ifなど)の両方を含めることができます。各ディレクティブが呼び出される回数(Angular 1. *)をどのように数えることができますか?
Angularソースコードをさまざまな方法で計測するアプローチを取った(addDirectiveにカウンタを追加するなど)。しかし、今まで私が試したことのすべては、指令の数が少なかったようです。
角度のある内部構造に詳しい人はいますか?もしそうなら、あなたはこれを行う良い方法を知っていますか?すべてのディレクティブは、角のサービスとして利用でき、すべてのディレクティブのコンパイルに取得しているので
ありがとうございます - これは非常にクールです!しかし、カスタム属性ディレクティブは時には未定義に見えます。理由を理解しようとしていましたが、フローを追うのは難しいです(ポストリンク関数でオブジェクトを再利用する最適化が必要なのかもしれません)。 $ compileProviderのパッチがより信頼できるかどうか知っていますか?ローカルランのためにAngularソースコード自体にパッチを当てても構いません。 – Wolf
問題を再現するサンプルを提供できますか?私はそれが何かを下回る可能性はないと思う。私は 'addDirective'パッチとほぼ同じことだと思います。 [このコード部分](https://github.com/angular/angular.js/blob/v1.5.8/src/ng/compile.js#L1101-L1105)の後にコンパイル機能をパッチすることができます。 'var _compile = directive.compile; directive.compile = function(){コンソール。ログ(this.name); return _compile.apply(this、arguments)} '、しかし、結果は似ているはずです。 – estus
遅れて申し訳ありません。残念なことに、私たちのアプリは非常に大きく複雑なので、私は簡単に分離されたreproを生成することができませんでした。 $ compileProviderを試してみてください。アイデアをもう一度ありがとう! – Wolf