加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 如何从根角度对象获取$rootElement

发布时间:2020-12-17 08:50:43 所属栏目:安全 来源:网络整理
导读:我的目标是在任意Angular项目中找到根元素,如果我拥有的是角度对象.这显然不是非常犹太,所以一个被黑客入侵的解决方案就可以了. 我的第一个方法是找到(“[ng-app]”),但这在启动的应用程序上失败了.我一直在玩各种角度模块,我陷入了僵局. 我可以做angular.in
我的目标是在任意Angular项目中找到根元素,如果我拥有的是角度对象.这显然不是非常犹太,所以一个被黑客入侵的解决方案就可以了.

我的第一个方法是找到(“[ng-app]”),但这在启动的应用程序上失败了.我一直在玩各种角度模块,我陷入了僵局.

我可以做angular.injector([‘ng’]).get(‘$rootScope’)来获取根范围.为什么我不能这样做
angular.injector([‘ng’]).get(‘$rootElement’)来获取根元素?

angular.injector创建一个新的注入器函数,它不返回与自举应用程序关联的那个.

Angular中的服务是单例,因为每个注入器只创建一次,这意味着以下代码:

angular.injector(['ng']).get('$rootScope')

每次执行时都会创建一个新的注入器函数和一个新的$rootScope.

以下行:

angular.injector(['ng']).get('$rootElement')

将创建一个新的注入器函数并尝试检索$rootElement,这对于新创建的注入器是不存在的.

您需要检索当前应用的注入器:

angular.element(DOMElement).injector();

对于您的特定情况,您可以找到与范围关联的第一个元素并从那里开始:

var element = document.querySelector('.ng-scope');
var $rootElement = angular.element(element).injector().get('$rootElement');
console.log($rootElement);

演示:http://plnkr.co/edit/mQ5ZibnV0Jg8DreXn0w9?p=preview

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读