如何在运行ng-click处理程序之前或期间切换加载指示器?
How can I toggle a loading indicator before or during anuglar's ng-click handler is run?
我试图操纵我的DOM(显示/隐藏加载指示器),同时运行通过ng-click指令触发的控制器动作。
我的代码是这样的:
控制器:
$scope.wip = false;
// set currently listed categroy
$scope.setCurrentCategory = function( category ) {
$scope.wip = true;
//...expensive re-filtering here...
$scope.wip = false;
};
视图:
<div ng-repeat="category in categories">
<a href="#" ng-click="setCurrentCategory(category);" >{{ category.name }}</a>
<img ng-cloak ng-show="wip" src="icons/spinner-mini.gif" />
</div>
现在发生的是,加载指示器只在整个ng-click处理完成后才更新,这意味着用户永远无法看到它。
如何将更新传播到$作用域。在处理程序的其余部分执行之前切换到我的视图?
我认为问题是在setCurrentCategory函数结束之前没有调用范围摘要。
http://docs.angularjs.org/api/ng。rootScope.Scope #美元消化
你可以强制在$scope后面加一个摘要。Wip = true like that:
$scope.setCurrentCategory = function( category ) {
$scope.wip = true;
$scope.digest()
//...expensive re-filtering here...
$scope.wip = false;
};
我不知道在已经有生命周期的函数中触发摘要是不是最好的主意,但它应该可以工作。
我认为另一种方法是使用作用域函数改变wip:
$scope.setCurrentCategory = function( category ) {
$scope.toggleWip();
//...expensive re-filtering here...
$scope.toggleWip();
};
$scope.toggleWip = function() {
$scope.wip = !$scope.wip;
}
相关文章:
- 剑道UI的加载指示器
- 当javascript图像转盘加载36个图像时,我可以显示加载指示器吗
- 如何显示加载指示器
- 将加载指示器添加到谷歌地图信息窗口
- 使用页面重定向的文件下载上的加载指示器
- 角度繁忙和$stateChangeStart的角度JS加载指示器
- 纯 Javascript 代码执行停止混合应用程序中的离子加载指示器
- Chrome iOS - 使用 jQuery 应用类时的加载指示器
- iframe加载完成后,加载指示器将保持在Firefox中
- xeditable的加载指示器
- 浏览器加载指示器从未停止旋转IE10
- 如何为angularjs应用程序中的每个异步操作(使用$q)制作加载指示器
- 浏览器在运行使用json的ajax函数后继续加载(加载指示器一直在旋转)
- 模块化AJAX加载指示器与jQuery
- Javascript基本文本加载指示器
- 使用jQuery在AJAX请求期间显示繁忙加载指示器
- 如何在运行ng-click处理程序之前或期间切换加载指示器?
- HTML5音频标签/ mediaelement.js的加载指示器
- 如何动画chrome和ie图标(加载指示器)
- 重载javascript期间的加载指示器