FabrícioRonchi

AngularJS - $scope.$apply()

26 February 2014

O AngularJS fornece alguns comportamentos nativos, como:

  • Events -> "ng-click"
  • Timeouts -> "$timeout"
  • JQuery.ajax() -> "$http"

Função

"$scope.$apply()" é um evento assíncrono, chamado no final de cada comportamento, informando que o comportamento ocorreu.

Dica

Não chame esse evento vários vezes em seu código, pois o mesmo pode já estar sendo executado. O AngularJS não empilhas as chamadas em uma fila, assim ocorrerá um erro.

Chamando o Evento

if (!$scope.$$phase) {
    $scope.$apply();
}

"$scope.$$phase()" é um evento que vai me dizer se já tem algum "$scope.$apply()" em execução. Ele retornar uma expressão “True” ou “False”.

Qualquer dúvida, chama aí no Twitter!