What is $apply for?
Refresh only the portion of the view corresponding to the scope on which $apply is called
Send the changes made to the data model to the server since the last record
Execute in the AngularJS context a treatment triggered by an external event
Trigger the link functions of the directives of the scope concerned to recalculate the corresponding bindings