используя ui-router: $state.go('', {}, {reload: true});
в кавычках путь, например, auth.login, в первых фигурных скобках параметры, во вторых, собственно то, что написано, если нужно перезагружать страницу.
$timeout запускает $digest и перерисовывает страницу после того как выполнятся все функции в текущем цикле.
Выполнится всё вне таймаута => обновление вьюхи => стаботает таймаут => вьюха обновится ещё раз