从摘要循环中删除并恢复范围

前端之家收集整理的这篇文章主要介绍了从摘要循环中删除并恢复范围前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法从摘要循环中删除范围?换句话说,暂停/恢复范围摘要循环?

在我的情况下,我已经载入了所有页面,但并不是全部都可见.所以我想暂停那些是不可见的,以避免无用的处理.我不想使用ng-view $route,我不想/需要深层链接.

我看到了this thread并且到了this fiddle.它可能做的工作,但它是很有创意,而不是非常框架更新友好.

有没有其他解决方案像$scope.suspend()和scope.resume()?还是一个较少侵入的(从框架的角度)?我正在考虑$destroy和$compile循环.

我遇到了同样的问题,我发现一个有趣的解决方案,并不会影响(太多)AngularJS.将其添加到要禁用的范围:
var watchers;

scope.$on('suspend',function () {
  watchers = scope.$$watchers;
  scope.$$watchers = [];
});

scope.$on('resume',function () {
  scope.$$watchers = watchers;
  watchers = null;
});

然后,您可以使用以下范围禁用范围及其子项:scope.$broadcast(‘suspend’)并将其带回范围.$broadcast(‘resume’).

猜你在找的Angularjs相关文章