I am just playing with Angular change detection cycle and I found something that I can't understand.
We have following component's view:
<!-- ver:1 call() was called 3 times -->
<div>
<p>call(); {{ call() }}</p>
Name obtained from the API: <b>{{ data.name }}</b>
</div>
<!-- ver:2 call() was called just once -->
<div>
Name obtained from the API: <b>{{ data.name }}</b>
<p>call(); {{ call() }}</p>
</div>
So in the ver:1 call() is executed 3 times, we have such order: 1.call() method, 2.render name from the API.
In the ver:2 call() is executed just once and we have such order: 1.render name from the API, 2.call() method.
I think the 'effect' comes from the forked version of the zone.js in the Angular, but I didn't find anything that can explain such behavior in the Angular repo.