You need to familiarize yourself with the concept of a digest loop in Angular.
In short, every time a digest loop runs, all expressions, e.g. {{name}}
or ng-show="isActive && isEnabled"
, that are being “$watched” by Angular are evaluated (sometimes more than once). This means that if you are invoking a function inside an expression:
<div ng-show="isShown()">
$scope.isShown = function(){
console.log("expect to see this text a lot of times");
return true;
};
the function will be executed on every digest loop.
A digest loop runs any time that something in Angular calls $scope.$digest
, which by default happens on things like ng-click
or ng-change
or $http.then
, etc..
5
solved View is getting initialized again and again