为了账号安全,请及时绑定邮箱和手机立即绑定

ngRoute 如何添加loading

ngRoute 如何添加loading

眼眸繁星 2019-02-06 14:15:51
想在每个页面图片加载完之前添加一个loading,等到图片加载完再显示页面,求思路
查看完整描述

2 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

(1)如果图片是从后端请求获取到的,可以在请求完成后设置一个布尔值的状态,在页面里ngif判断去显示loading 或者图片;

(2)如果图片是从function 来写入,可以 function load(){} 完成后,同(1)去做;

(3)如果是html 里的image 标签,我不知道有事件可以判断image加载完成,如果有好的方式,请回复,共同学习。


查看完整回答
反对 回复 2019-02-25
?
翻阅古今

TA贡献1780条经验 获得超5个赞

可以考虑使用angular 的拦截器机制,实现全局的请求拦截

//http loading Injector

app.factory('httpLoadingInjector',['$rootScope','$q',function($rootScope,$q) {

    var loadingInjector = {

        request: function(config) {


            $rootScope.httpLoading=true;

            return config;

        },


        response: function (response) {

            $rootScope.httpLoading=false;


            if(response.status!=200){

                console.log("Response-Error:",response);

            }


            return response;

        },

        responseError: function(err){


            // console.log('responseError:' + angular.toJson(err,true));


            // if(500 == err.status) {

            //     // 处理各类自定义错误

            //     //$rootScope.httpLoading=false;

            //     msg("服务出问题拉,联系系统维护人员吧");


            //     console.log(err);



            // } else if(404 == err.status) {


            //     msg("服务找不到了,请联系维护人员!")


            // }else if(403  == err.status) {

            //     msg("登录状态已过期,请重新登录!",function () {

            //         logout();

            //     });


            // }else{

            //     msg("服务找不到了,请联系维护人员!",function () {

            //        // logout();

            //     });


            // }



            $rootScope.httpLoading=false;

            return $q.reject(err);

        }

    };


    return loadingInjector;


}]);


最后在 app.config 中注入

$httpProvider.interceptors.push('httpLoadingInjector');




查看完整回答
反对 回复 2019-02-25
  • 2 回答
  • 0 关注
  • 427 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信