【问题标题】:How to define when show or not a loading screen如何定义何时显示或不显示加载屏幕
【发布时间】:2016-05-14 14:07:12
【问题描述】:

所以,我有这个应用程序,它使用此代码在加载一些 ajax 请求时在所有屏幕内容上显示和隐藏加载屏幕。

app.config( function( $stateProvider, $urlRouterProvider, $httpProvider )
{
    $httpProvider.interceptors.push(function( $rootScope )
    {
        return {
            request: function(config) {
                $rootScope.$broadcast('loading:show')
                return config
            },
            response: function(response) {
                $rootScope.$broadcast('loading:hide')
                return response
            }
        }
    });
})
.run(function( $state, $rootScope, $ionicLoading, $storage )
{
    $rootScope.$on('loading:show', function() 
    {
        $ionicLoading.show({template: 'Loading'});
    });

    $rootScope.$on('loading:hide', function() 
    {
        $ionicLoading.hide();
    });
});

当我想加载我使用的东西时:

$http.post( "http://myexample.com.br/json-data", {param1:"1"} ).then(function(result){});

问题是,在某些情况下,我希望在后台加载某些内容而不显示加载屏幕。

【问题讨论】:

    标签: javascript angularjs ionic-framework


    【解决方案1】:

    按照您使用拦截器进行设置的方式,这些加载事件将在每次$http 调用时引发。我建议从 $rootScope 中删除事件侦听器,并仅将它们应用于您确实希望显示加载屏幕的单个控制器范围。

    【讨论】:

    • 如果没有其他问题,我可能会以这个结束。问题是,我在所有情况下都需要这个加载功能,除了一个。 =\
    【解决方案2】:

    我将$ionicLoading.hide(); 放在$http.post 之后。不是最好的,但可以解决。

    $http.post( "http://myexample.com.br/json-data", {param1:"1"}).then(function(result)
    {
    
    });
    
    $ionicLoading.hide();
    

    【讨论】:

      猜你喜欢
      • 2018-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多