Так как я хреновый JS программист, практики мало, постоянно сверяюсь с доками и SO. Естественно, я помню примерно, что и как делается правильно и т.п.
Сейчас делаю angular директиву в виде паутинной диаграммы, значения на которой можно пальцем/мышкой менять и сохранять.
Логично, что исходную диаграмму можно нарисовать только после генерации DOM, гуглю, как правильно вставить в link директивы.
Первые несколько ответов - использовать $timeout(...., 0) из jQuery.
Ещё один - просто добавить таймаут...
Вот эти люди они вообще как, здоровы? Они эту заразу ещё и плодят!!! А JS евангелисты в этот паровоз говна ещё и угль ковшами накидывают!
(если вдруг тут такие же: правильно angular.element(document).ready(.....))