Tôi đã có một ứng dụng góc như:Tại sao chức năng ng-style được áp dụng hai lần?
angular.module('ngStyleApp', [])
.controller('testCtrl', function($scope) {
$scope.list = [1,2,3];
$scope.getStyles = function(index) {
console.log('getting styles for index ' + index);
return {
color: 'red'
};
};
});
với đánh dấu tương ứng:
<div ng-app="ngStyleApp">
<ul ng-controller="testCtrl">
<li ng-repeat="value in list" ng-style="getStyles($index)">
{{value}}
</li>
</ul>
</div>
Kết quả có thể nhìn thấy là ba mục danh sách đỏ, như mong đợi. Nhưng câu lệnh được ghi vào bảng điều khiển tổng cộng 6 lần, ngụ ý rằng chế độ xem được hiển thị hai lần:
getting styles for index 0
getting styles for index 1
getting styles for index 2
getting styles for index 0
getting styles for index 1
getting styles for index 2
Tại sao?
Sau đó, tại sao lệnh ng-init đó chỉ được gọi một lần? – Josep
ng-init thực hiện điều đó - nó được sử dụng để thiết lập một giá trị một lần để khởi tạo chỉ thị –
Đó là vì ng-init không cần phải đánh giá lại, nó không đăng ký bất kỳ đồng hồ nào. – PSL