我有一个共享函数,它返回我的 AngularJS 应用程序中最顶层元素(文档)的范围。
function topScope() {
return angular.element(document).scope();
}
这总是有效的,并且我始终保证可以访问位于应用程序内的任何子范围(无论是在控制器还是指令内)。
这是我将其用于的示例:
topScope().$emit('pageReady');
现在我注意到 $rootScope 也以同样的方式工作。
$rootScope.$emit('pageReady');
这也有效并达到了相同的效果。但是由于 $rootScope 被设计为“现成的 $scope”范围(创建的任何范围都将继承它的方法和属性),那么这是否仍然意味着它实际上是页面的最顶层范围?因此成为附加到文档节点的范围对象的父级?