微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

有没有办法从摘要循环中删除范围?换句话说,暂停/恢复范围摘要循环?

在我的情况下,我已经载入了所有页面,但并不是全部都可见.所以我想暂停那些是不可见的,以避免无用的处理.我不想使用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’).

原文地址:https://www.jb51.cc/angularjs/142548.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐