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

前端之家收集整理的这篇文章主要介绍了Angular 怎么在加载中加入 Loading 提示框前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

[转自]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 事件:

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

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

@H_301_29@
1
2
3
< div class = "loading" ng-show "busy" >< i "fafa-spinfa-spinnerfa-lg" ></ i >
loading...
</ div >

3、使用:

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

在 poController.js 中:

@H_301_29@
1
2
3
4
5
6
$scope.getAllPOs= (){
$scope.$emit( );
//getdatafromserver
//...
//whendonecall$scope.$emit("NOTBUSY");
};

猜你在找的Angularjs相关文章