há um retorno de chamada post render para a diretiva Angular JS?

Acabei de receber minha diretiva para inserir um modelo para anexar ao seu elemento da seguinte forma:

# CoffeeScript
.directive 'dashboardTable', ->
  controller: lineItemIndexCtrl
  templateUrl: "<%= asset_path('angular/templates/line_items/dashboard_rows.html') %>"
  (scope, element, attrs) ->
    element.parent('table#line_items').dataTable()
    console.log 'Just to make sure this is run'

# HTML
<table id="line_items">
    <tbody dashboard-table>
    </tbody>
</table>

Eu também estou usando um Plugin jQuery chamado DataTables. O uso geral é assim: $ ('table # some_id'). DataTable (). Você pode passar os dados JSON para a chamada dataTable () para fornecer os dados da tabela OU você pode ter os dados já na página e eles farão o resto .. Eu estou fazendo o último, tendo as linhas já na página HTML .

Mas o problema é que eu tenho que chamar o dataTable () na tabela # line_items APÓS DOM pronto. Minha diretiva acima chama o método dataTable () ANTES de o modelo ser anexado ao elemento da diretiva. Existe uma maneira que eu possa chamar funções após o acréscimo?

Obrigado pela ajuda!

ATUALIZAÇÃO 1 após a resposta de Andy:

Eu quero ter certeza de que o método link só é chamado depois que tudo está na página, então eu alterei a diretiva para um pequeno teste:

# CoffeeScript
#angular.module(...)
.directive 'dashboardTable', ->
    {
      link: (scope,element,attrs) -> 
        console.log 'Just to make sure this gets run'
        element.find('#sayboo').html('boo')

      controller: lineItemIndexCtrl
      template: "<div id='sayboo'></div>"

    }

E eu realmente vejo "boo" no div # sayboo.

Então eu tento minha chamada datatable jquery

.directive 'dashboardTable',  ->
    {
      link: (scope,element,attrs) -> 
        console.log 'Just to make sure this gets run'
        element.parent('table').dataTable() # NEW LINE

      controller: lineItemIndexCtrl
      templateUrl: "<%= asset_path('angular/templates/line_items/dashboard_rows.html') %>"
    }

Sem sorte ai

Então eu tento adicionar um tempo limite:

.directive 'dashboardTable', ($timeout) ->
    {
      link: (scope,element,attrs) -> 
        console.log 'Just to make sure this gets run'
        $timeout -> # NEW LINE
          element.parent('table').dataTable()
        ,5000
      controller: lineItemIndexCtrl
      templateUrl: "<%= asset_path('angular/templates/line_items/dashboard_rows.html') %>"
    }

E isso funciona. Então, eu me pergunto o que está errado na versão sem temporizador do código?

questionAnswers(10)

yourAnswerToTheQuestion