当承诺被解除时,永远不要停止加载

时间:2016-10-14 10:30:36

标签: javascript angularjs cordova ionic-framework

我正在制作一个Apacha Cordova应用程序。所以...如果服务找不到数据(因为网址错误或401状态响应),我想做一个安全的方法我想做点什么:例如显示一个无法找到数据的图像。

所以...当我强制服务无法找到数据时(我把网址设置错误)这就是: enter image description here

离子仍在装载,永不停止。如果仍在加载,我无法显示图像或类似的东西。

这是我从服务器获取数据的方式:

控制器:

(function() {
'use strict';

angular
    .module('example.ultimasoperaciones')
    .controller('UltimasOperacionesController', UltimasOperacionesController);

UltimasOperacionesController.$inject = ['$state', 'ultimasOperacionesService'];

function UltimasOperacionesController($state, ultimasOperacionesService) {
    var vm = this;
    vm.ultimasOperaciones = [];

    inicializar();

    function inicializar() {
        cargarUltimasOperacionesComplejo();

    }

    //funcion para obtener las ultimas operaciones realizadas
   function cargarUltimasOperacionesComplejo() {
        ultimasOperacionesService.obtenerUltimasOperacionesComplejo()
            .then(function(ultimasOperaciones) {
                vm.ultimasOperaciones = ultimasOperaciones;
            })
            .catch(mostrarError);
    }


    //mostrar error si no se cargaron correctamente las últimas operaciones
    function mostrarError(e) {
        console.log(e);
    }

}
})();

服务

(function() {
'use strict';

angular
    .module('example.ultimasoperaciones')
    .factory('ultimasOperacionesService', ultimasOperacionesService);

ultimasOperacionesService.$inject = ['remoteDataService'];

/* @ngInject */
function ultimasOperacionesService(remoteDataService){ 
    var service = {
        obtenerUltimasOperacionesComplejo: obtenerUltimasOperacionesComplejo,
    };
    return service;

    //funcion para obtener las últimas operaciones
    function obtenerUltimasOperacionesComplejo() {
        return remoteDataService.obtenerUltimasOperacionesComplejo()
    }
}
})();

远程数据服务

//funcion para obtener las ultimas operaciones del complejo
    function obtenerUltimasOperacionesComplejo() { 
        return $http
            .get(ultimasOperacionesUrl,
                 {params: {idComplejo: 1121}})
            .then(function(response) {
                var datos = response.data;
                var status = response.status;

                if(status == 200){   
                    var exito = datos.success;

                    if(exito == 0){
                        return $q.reject(datos);
                    }
                    else if(exito == 1){
                        ultimasOperaciones = datos.ultimasOperaciones;
                        return ultimasOperaciones;
                    }
                }    
            })
            .catch(generarError);
    }

    function generarError(e){
        if (e.message) {
            return $q.reject(e.message);
        }
        return $q.reject('Ups! Hubo un problema al conectarse al servidor. Intente nuevamente');
    }

嗯,有人知道如何解决我的问题吗?感谢

0 个答案:

没有答案