有没有办法从摘要循环中删除范围?换句话说,暂停/恢复范围摘要循环?
在我的情况下,我已经载入了所有页面,但并不是全部都可见.所以我想暂停那些是不可见的,以避免无用的处理.我不想使用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’).