Angular. Обязательно ли помещать код внутри $apply?
Так делать плохо https://github.com/angular/angular.js/wiki/Anti-Pa...
Можно сделать проще
$timeout(function() {
     код
});
Эффект будет такой же. Ну и все это актуально для кода, который изменяет состояние извне.
Поидее никакой разницы нет. Сам пользуюсь вторым способом уже довольно давно и ни разу небыло из-за этого проблем.