Angularjs繁忙指标用于过滤

时间:2013-10-22 19:41:41

标签: angularjs

繁忙的指标非常适合$ http。

我的手机上可能需要2到3秒的过滤器。 我想“忙”显示器,直到Angular完成它的工作(过滤并重新绘制它需要的东西),这样用户就不会再次点击了。

是否有我可以订阅的活动可以帮助我解决这个问题?

2 个答案:

答案 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)

我写了一个指令BusyIndi​​cator IsBusy =“IsBusySubmitting || IsBusyLoadingTemplate”

我可以通过这种方式控制繁忙的指标层。

https://twitter.com/leblancmeneses/statuses/341368016556142594