gpt4 book ai didi

angularjs - $rootScope 是最顶层 $scope 的父级吗?

转载 作者:行者123 更新时间:2023-12-03 14:45:43 24 4
gpt4 key购买 nike

我有一个共享函数,它返回我的 AngularJS 应用程序中最顶层元素(文档)的范围。

function topScope() { 
return angular.element(document).scope();
}

这总是有效的,我总是保证可以访问位于应用程序内的任何子范围(无论是在 Controller 内还是在指令内)。

这是我将使用它的一个例子:
topScope().$emit('pageReady');

现在我注意到 $rootScope 也以同样的方式工作。
$rootScope.$emit('pageReady');

这也有效并达到相同的效果。但是由于 $rootScope 被设计为“现成的 $scope”范围(创建的任何范围都将继承它的方法和属性)那么这是否仍然意味着它实际上是页面的最顶层范围?因此成为附加到文档节点的范围对象的父级?

最佳答案

$rootScope是给定 AngularJS 应用程序中所有作用域的父作用域。由于可以在一个页面上引导多个 AngularJS 应用程序(只能手动,这不能使用 ng-app 完成),因此也可以有多个 $rootScope一个 HTML 文档中的实例。

每个$rootScope “附加”到声明 ngApp 的元素或传递给 angular.bootstrap 的元素如所述 here .

总之,$rootScope是一个 AngularJS 应用程序的所有范围的根,但没有“ super 根”范围可以作为给定 HTML 文档的所有其他范围的父范围。

在您使用 $rootScope 的情况下如果您在整个 HTML 文档中只有一个 AngularJS 应用程序,那可能没问题。

关于angularjs - $rootScope 是最顶层 $scope 的父级吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13639854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com