今日、このコードによって引き起こされたパフォーマンスの問題を修正する必要がありました:テンプレート内で呼び出される updateStats に注意してください。
<script type="text/ng-template" id="entityGrouper">
<section>
<div>
<ul ng-click="hideEntityBox = !hideEntityBox">
<li>
{{ entityNode.name }}
</li>
<li ng-repeat="breadcrumbItem in entityNode.breadcrumb">
{{ breadcrumbItem }}
</li>
</ul>
{{ updateStats(entityNode) }}
<span ng-include="'/mypath/views/resume.html'"></span>
</div>
<div>
<div ng-repeat="entityNode in entityNode.group" ng-include="'entityGrouper'"></div>
<div ng-repeat="entity in entityNode.group" ng-include="'entityBox'"></div>
</section>
</script>
テンプレートの使用:
<div ng-repeat="entityNode in entityNode.group" ng-include="'entityGrouper'"></div>
このコードをデバッグした後、この関数が配列サイズよりもはるかに多く呼び出されていることがわかりました (私の配列には 4 つのオブジェクトがあり、関数は 100 回以上呼び出されました)。マウス ホバーでもこの関数が呼び出されました。テンプレート内に ng-init を配置するだけでこれを修正したところ、適切に機能するようになりましたが、この関数が何度も呼び出された理由がわかりませんでした。双方向のデータバインディングについて何かありますか?