我的目标是在任意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);
原文地址:https://www.jb51.cc/angularjs/141031.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。