繁忙的指标非常适合$ http。
我的手机上可能需要2到3秒的过滤器。 我想“忙”显示器,直到Angular完成它的工作(过滤并重新绘制它需要的东西),这样用户就不会再次点击了。
是否有我可以订阅的活动可以帮助我解决这个问题?
答案 0 :(得分:0)
您是否需要举办活动?我不认为有一个,但您可以考虑将所有过滤器函数包装在一个通用繁忙指标包装器中。
function busyWrap(func) {
return function() {
Busy.start();
try {
func.apply(this, Array.prototype.slice.call(arguments, 0));
} finally {
Busy.stop();
}
}
};
然后在您的过滤器定义中更改类似
的内容app.filter('filter', function() {
return function(input) {
return output;
};
});
到这个
app.filter('filter', function() {
return busyWrap(function(input) {
return output;
});
});
代码可能不完美,但是包装过滤器功能的可重用功能的想法是最好的选择。但是,极有可能的是,花费最多时间的代码是内部的角度(例如在排序列表上重绘大型重复序列),所以这可能无法帮助您。
答案 1 :(得分:0)
我写了一个指令BusyIndicator IsBusy =“IsBusySubmitting || IsBusyLoadingTemplate”
我可以通过这种方式控制繁忙的指标层。
https://twitter.com/leblancmeneses/statuses/341368016556142594