gpt4 book ai didi

javascript - 在 PageMod Firefox 中获取 Angular 范围

转载 作者:行者123 更新时间:2023-11-27 23:32:45 27 4
gpt4 key购买 nike

我正在使用 FF 44.0a2 Developer Edition 和 Firefox Addon SDK 制作 Firefox 插件。我使用 pageMod 内容脚本将 AngularJS 应用程序注入(inject)到页面 DOM 中。在文件的后面,我试图获取 AngularJS App 范围对象,以便我可以使用它来进行一些 API 调用。这是我尝试做的事情

    var scope = angular.element(document.getElementById("ngApp")).scope();      
console.log(scope);

如果我在浏览器控制台中输入此内容,它会为我提供完整的范围,但是当我在 pageMod 内容脚本中执行此操作时,即使注入(inject)应用程序,也会返回 null ?有人可以指出我的错误吗?对于此事的任何帮助,我将不胜感激

最佳答案

您不应该在 ngApp 上获取它,而应该从附加了 Controller 的元素中获取它。

我在我的 Firefox 插件中经常使用 Angular,现在我改用 React,因为它的性能更高。

但这是我如何获取和访问作用域、注入(inject)器等:

这是 ngApp:https://github.com/Noitidart/ZooniverseXpert/blob/master/app.xhtml#L15

<html xmlns="http://www.w3.org/1999/xhtml" ng-app="zooniversexpert">
<body ng-controller="BodyController as BC">

这是我得到的范围:https://github.com/Noitidart/ZooniverseXpert/blob/master/resources/scripts/app.js#L46-L47

    var gAngBody = angular.element(document.body);
gAngScope = gAngBody.scope();

这是一个 Firefox 插件,更深入地使用 Angular - https://github.com/Noitidart/MailtoWebmails/ - 它使用来自文件、注入(inject)器、作用域、清理和其他一些东西的指令。

关于javascript - 在 PageMod Firefox 中获取 Angular 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34410036/

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