今天,我不得不修復由此引起的代碼性能問題:注重updateStats稱爲模板中函數被調用多次(角JS)
<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,現在它工作正常,但我沒有弄清楚爲什麼這個函數被調用了很多次。有兩種數據綁定方式嗎?
你遞歸調用相同的模板?還有一個'
'內部模板 – Developer