Angularjs UI路由器:获取对updateView中将消失的作用域的引用?

Angularjs UI路由器:获取对updateView中将消失的作用域的引用?,angularjs,angular-ui-router,Angularjs,Angular Ui Router,与UI路由器$stateChangeStart、$stateChangeSuccess、$viewContentLoading相关的所有事件。。。似乎是从$rootScope广播的,但有一个$viewContentLoaded是从将替换当前的ui视图的范围发出的。我的问题是,是否有某种方法可以获得要替换的范围的引用 我错过了一些东西,比如: if (!firstTime && previousLocals === latestLocals) return; // nothing

与UI路由器$stateChangeStart、$stateChangeSuccess、$viewContentLoading相关的所有事件。。。似乎是从$rootScope广播的,但有一个$viewContentLoaded是从将替换当前的ui视图的范围发出的。我的问题是,是否有某种方法可以获得要替换的范围的引用

我错过了一些东西,比如:

 if (!firstTime && previousLocals === latestLocals) return; // nothing to do
 newScope = scope.$new();
 latestLocals = $state.$current.locals[name];

 if (!firstTime)
    currentScope.$broadcast('$viewToBeReplaced');

我还可以在视图范围中侦听$statechangesucture,但我不知道如何检查该范围是否受状态更改的影响。$scope.destroy是另一个选项,但该函数是在ui视图被替换为新视图后调用的。

我可以问一下您的用例是什么吗?是的,我尝试将类应用于视图中的元素,但有两个条件:a视图将消失b元素现在在视口中,我发现的最佳解决方案是在范围中设置一个变量,并使用类似ng class={'dissapear':viewLeaving&iAmInViewport}的东西。此变量由侦听rootScope事件$viewContentLoading的服务或指令设置。最后,我的动画看起来像这样。也许有简单的方法可以做到这一点。我必须承认,我对动画了解不多,但当UI路由器从DOM中删除时,它会向UI视图添加一个类。请参阅源代码并了解$animate.leave的功能