Q:

No logro lanzar una alerta de "correo existente"

He retomado el código que otro desarrollador dejó inconcluso y tengo algunos problemas cuando quiero registrar a un nuevo usuario.
En la validación del correo ya existente logro que no se sobreescriba el registro anterior, pero no logro lanzar una alerta de "usuario existente" y me dice que el registro ha sido exitoso.
Mi desarrollo es una app móvil híbrida con IONIC 1 y AngularJS.
El código:

//estas validaciones funcionan excelente
$scope.doLogin = function () {
        console.log('Doing login', $scope.loginData);

        var errors = 0;

        $scope.errorPassword = ''
        $scope.errorPassword2 = ''
        $scope.errorRpassword = ''
        $scope.errorEmail = '';
        $scope.errorEmail2 = '';
        $scope.errorEmail3 = '';

if(!$scope.loginData.email){
            ++errors;
            document.getElementById('email').style.boxShadow = 'inset 0 0 10px #e42112';
            $scope.errorEmail = '* El email no puede estar vacío<br>';
        } else if(!$scope.loginData.email.match(/^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$/)) {
            ++errors;
            $scope.errorEmail2 = '* El formato del email es inválido<br>';
            document.getElementById('email').style.boxShadow = 'inset 0 0 10px #e42112';

        } else if($scope.loginData.email !== $scope.loginData.r_email) {
            ++errors;
            $scope.errorEmail3 = '*Los email no coinciden<br>';
            document.getElementById('email').style.boxShadow = 'inset 0 0 10px #e42112';
            document.getElementById('r_email').style.boxShadow = 'inset 0 0 10px #e42112';
        }else{
            document.getElementById('email').style.boxShadow = 'none';
            document.getElementById('r_email').style.boxShadow = 'none';
        } 
  //hasta aquí todo perfecto
  
  // esta es la alerta que no me envía:
  $http.get($scope.url + "api/validarEmailMob",{ 
          "email": $scope.loginData.email,
        }, { headers: { 'Content-Type': 'application/json' } }).then(function (res){
        }, function(res){
          
          ++errors;
                     $ionicPopup.alert({
                      title: 'Alerta',
                      template: 'Usuario ya existe !'
                  });

            });

         
        
        if (errors == 0) {
          
          $http.post($scope.url + "/registrar/registraPaciente",
            {
                "name": $scope.loginData.nombre,
                "aPaterno": $scope.loginData.a_paterno,
                "aMaterno": $scope.loginData.a_materno,
                "email": $scope.loginData.email,
                "password": $scope.loginData.password,
                "password_confirmation": $scope.loginData.r_password,
                "rfc": $scope.loginData.rfc,
                "role": "paciente"
            }, { headers: { 'Content-Type': 'application/json' } }).then(function (respuesta) {
                if (respuesta.data.mensaje) {
                    $scope.respuesta = respuesta.data.mensaje;
                    console.log(respuesta);
                } else {
                 $timeout(function () {
                     $scope.closeModal();
                 }, 1000);

                  $ionicPopup.alert({
                      title: 'Registro',
                      template: 'Usuario registrado exitosamente'
                  });

                    $location.path("/home");
                }
<ion-modal-view class="registro login" style="background:url(img/background.jpg);background-size:cover;">
                
    <ion-content>
    
     <section class="top" style="background:none!important;">
         <img src="img/logo-grande.png" alt="Ángeles hospitales"/>
            <!--a href="#"><i class="ion-ios-telephone-outline"></i></a-->
            <a href="#" ng-click="closeModal()"><i class="ion-android-close"></i></a>
        </section>
     <h1 class="titulo_login">Registro</h1>
        <p class="light" style="text-align:center;" ng-if="registro_error">{{registro_error}}</p>
        <form ng-submit="doLogin()">
            <div class="list-inset">
                <label class="item item-input" id="nombre">
                    <input type="text" pattern="[a-zA-Z-ñÑ-áÁ-éÉ-óÓ-úÚ\s]*" placeholder="Nombre" ng-model="loginData.nombre" autofocus>
                </label>
                <label class="item item-input" id="a_paterno">
                    <input type="text" pattern="[a-zA-Z-ñÑ-áÁ-éÉ-óÓ-úÚ\s]*" placeholder="Apellido Paterno" ng-model="loginData.a_paterno" >
                </label>
                <label class="item item-input" id="a_materno">
                    <input type="text" pattern="[a-zA-Z-ñÑ-áÁ-éÉ-óÓ-úÚ\s]*" placeholder="Apellido Materno" ng-model="loginData.a_materno">
                </label>
                <label class="item item-input" id="edad">
                    <input type="text" class="form-control" placeholder="Fecha de Nacimiento" onfocus="(this.type='date')" ng-model="loginData.edad" style="
                    font-size: 1.2em;
                    padding-top: 1px;
                    " >
                
                </label>
                <label class="item item-input" id="rfc">
                    <input type="text" ng-model="loginData.rfc" placeholder="RFC (Opcional)">
                </label>
                <label class="item item-input" id="email">
                    <input type="email" ng-model="loginData.email" placeholder="Email">
                </label>
                <label class="item item-input" id="r_email">
                    <input type="email" ng-model="loginData.r_email" placeholder="Repetir Email">
                </label>
                <label class="item item-input" id="password">
                    <input type="password" ng-model="loginData.password" placeholder="Contraseña (min 7)" ng-minlength="7">
                </label>
                <label class="item item-input" id="r_password">
                    <input type="password" ng-model="loginData.r_password" placeholder="Repetir Contraseña (min 7)" ng-minlength="7">
                </label>
                <label class="item-checkbox-angeles">
                    <input type="checkbox" ng-model="loginData.terminos" checked="false"><span></span>
                </label>
                <a href="#" ng-controller="terminos" ng-click="openModal()">He leído y acepto los términos y condiciones.</a>
            </div>
                <button class="button button-block button-assertive" ng-disabled="(!loginData.terminos)" type="submit">Registrarse</button>
        </form>
    </ion-content>
</ion-modal-view>

A:

El problema principal que tienes es que el GET para validar el usuario y el POST para crear uno nuevo se estan ejecutando en paralalo.
Ahora haces..
$http.get($scope.url + "api/validarEmailMob", ...
   // aqui en el handler de error estableces ++error
);

if (error == 0) {
  $http.post(...
    // creas el nuevo usuario.
  );
}

Aqui pasan dos cosas:
1- Estas dos instrucciones se ejecutan en secuancia, pero el handler de error se ejecuta como callback cuando termina la solicitudo. Es la naturaleza asincronica de la E/S en javascript.
2- El handler de error (donde pone ++error) solo se invoca si hay un error en la solicitud (osea: 404 not found, 500 server error, connection timeout, etc). No se invoca si la solicitud retorna un valor valido, en ese caso se invoca el handler de success, la primer funcion que declaras, la cual esta vacia.
Como solucionarlo:
Utilizando las Promises (o Promesas) una detras de la otra y buscando una forma de validar bien el email. Para eso tienes que conocer la respuesta posible del servidor si el correo existe.
Esto seria encadenado los resultados, para que se ejecuten en serie, es decir el registro cuando termina la validacion.
Suponiendo que el endpoint api/validarEmailMob retorna { existe: true } cuando ya esta registrado el email, y falso cuando no, puedes hacer los siguiente.
$http.get($scope.url + "api/validarEmailMob", { .... })
     .then(function (resp) {
       if (resp.data.existe) {
          // Alerta el usuario existe
       } else {
          return $http.post(...
             // creas el nuevo usuario.
          );
       }
     }).catch(function (resp) {
       // sucedio un error con alguna de las solicitudes, entoces 
       // informas al usuario que debe volver a intentar mas tarde. o similar.
     });

