Hôm nay tôi đã phải sửa chữa một vấn đề hiệu suất gây ra bởi mã này: sự chú ý Pay để updateStats gọi bên trong mẫuChức năng bên trong một mẫu được gọi là nhiều lần (góc 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>
Template sử dụng:
Sau khi gỡ lỗi mã này, tôi phát hiện ra rằng hàm này được gọi nhiều lần hơn kích thước mảng (mảng của tôi có 4 đối tượng và hàm được gọi nhiều hơn 100 lần), thậm chí di chuột được gọi là hàm này. Tôi đã sửa lỗi đó bằng cách chỉ cần đặt một ng-init bên trong khuôn mẫu và bây giờ nó hoạt động đúng cách, nhưng tôi đã không tìm ra lý do tại sao chức năng này được gọi nhiều lần. Có điều gì đó về hai chiều ràng buộc dữ liệu?
Bạn có gọi đệ quy cùng một mẫu không? có một lần nữa một cuộc gọi '
' được thực hiện bên trong mẫu – Developer