Angular 怎么在加载中加入 Loading 提示框

本文介绍了一种在AngularJS应用中实现全局加载指示器的方法。通过定义一个全局的忙碌状态变量并使用事件来通知这一状态的变化,可以方便地在应用的任何地方触发加载动画的显示或隐藏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[转自] http://zhidao.baidu.com/link?url=MX9eSRkQbBC8zrjsCi-t_PsftVRSIjiaUTHhdp6eDiZ0IqaZehSCo3n7fFXWyP3fzKR1uDfUN0VpiOhUtXvEDpv1hmofuevrSrBNvutbWz_


0、提供一种用过(也许已不是最佳)的思路:

0.1、最外层的 index.html 放个内容为 "Loading..." 的 div;通过最外层 controller 的 $scope.busy 变量,使用 ng-show 控制是否显示;

0.2、需要显示 Loading 时,冒泡 BUSY 事件;最外层 controller 收到 BUSY 事件就将 $scope.busy 置为 true,那个 DIV 就显示了;

0.3、同理,要隐藏就冒泡 NOTBUSY 事件;


1、假设目录结构是:

index.html (这是最外层,body 的 controller 是 mainController;这里写 ng-view)

/partial (各子 view 放这里)


2、index.html 的 body 使用的 mainController 是最外层 controller,在这 mainController 监听 BUSY/NOTBUSY 事件:

1
2
3
4
$scope.$on("BUSY"function(){        $scope.busy = true;
});
$scope.$on("NOTBUSY"function(){        $scope.busy = false;
});


index.html 里放着那个显示 "Loading..." 字样的 DIV:

1
2
3
<div class="loading" ng-show="busy"> <i class="fa fa-spin fa-spinner fa-lg"></i>
        loading ...
</div>

3、使用:

比如在子 view /partial/po.html (使用 poController)中某动作后要显示 Loading 框:

在 poController.js 中:

1
2
3
4
5
6
$scope.getAllPOs = function(){
    $scope.$emit("BUSY");
    // get data from server
    // ...
    // when done call $scope.$emit("NOTBUSY");
};

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值