有没有办法在生产模式下调用组件或服务方法?
我知道可以使用以下方式调试应用程序ng.probe
并使用 Angular2 调试应用 Augury:https://augury.angular.io/
但是,这些仅在开发模式下有效。
以下是在生产模式下(至少在 Angular 9 中)从控制台访问组件对象的方法。
首先,您需要找到与 Angular 组件相对应的 HTML 元素。你可以使用类似的东西window.getAllAngularRootElements()[0].getElementsByTagName('my-component-tag')[0]
。或者您也可以先在 Inspector 工具中找到并选择该组件,然后使用特殊变量$0
.
然后,如果这个元素对应于某个 Angular 组件,那么它将有一个特殊的__ngContext__
所附财产。它包含 Angular 使用的不同组件属性的数组。数组的项目之一是组件对象本身。该项目的索引可能不同,因此您需要检查__ngContext__
自己去寻找它。
即,简单地说,执行以下操作:
o = window.getAllAngularRootElements()[0].getElementsByTagName('my-component-tag')[0].__ngContext__[42];
(假设 42 是您的情况下的正确索引)然后使用o
根据需要可变。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)