Why do we have to digest here? Should we not be using $apply and wrapping this in an `if (!$scope.$$phase) {`