Question: I have a ng-repeat directive which displays a list of links. It works fine, but my code also has a javascript function which places the list depending on its dimensions. Naturally, the dimension of the list is not known until Angular is done databinding and modifying the DOM. If I call the function immediately after data change, then the placement calculation jumps the gun and places the list as if it's empty. I want to fire the function once Angular is done modifying the DOM. How can I do that?

**EDIT:**

Just tried ngcloak as a possible solution, unfortunately it does not work. Reading ngcloak's documentation, my problem is not that the list flickers, but it is placed as if it's empty, and then stays there. I need a way to call my function once the databinding is complete.

Answer: 
seems you're using a [masonry](http://masonry.desandro.com/)-like library for positioning elements, if so, use [angular masonry](http://passy.github.io/angular-masonry/) directive for that. there is fork that eliminates the jQuery too.   

but anyway, take a look at it, will be useful.

* for text data a small delay would work, like:

```
timeout = $timeout(function layout() {
  //layout elements 
}, 30);

```
* for images you can get the dimensions before completely loading image , [here](https://stackoverflow.com/questions/13850867/jquery-javascript-get-image-size-before-load) you can find a good way.
I think [ngCloak](http://docs.angularjs.org/api/ng.directive%3angCloak) is what you are looking for.