Firefox addon 有没有办法不从HTML文件(在Firefox插件main.js文件中)加载AngularJS?

Firefox addon 有没有办法不从HTML文件(在Firefox插件main.js文件中)加载AngularJS?,firefox-addon,angularjs,firefox-addon-sdk,Firefox Addon,Angularjs,Firefox Addon Sdk,我正在使用开发一个Firefox扩展,并尝试使用main.js文件中的一些AngularJS服务。我使用require()包含相关模块,并使用angular.bootstrap()初始化模块 但是,我总是遇到以下错误: 引用错误:未定义窗口 还有什么我可以做的吗?可能是您必须通过 var window=require(“window utils”).activeBrowserWindow?AngularJS实际上并不适合这种环境——它是一个MVC框架,在您的例子中,缺少V(视图)。你不知道你想用

我正在使用开发一个Firefox扩展,并尝试使用main.js文件中的一些AngularJS服务。我使用
require()
包含相关模块,并使用
angular.bootstrap()
初始化模块

但是,我总是遇到以下错误:

引用错误:未定义窗口


还有什么我可以做的吗?

可能是您必须通过
var window=require(“window utils”).activeBrowserWindow

AngularJS实际上并不适合这种环境——它是一个MVC框架,在您的例子中,缺少V(视图)。你不知道你想用盎格鲁JS来做什么,但是你可能想考虑在内容脚本中使用它,而不是<代码> Maul.js.P/> 也就是说,AngularJS经常使用
window
作为访问全局对象的一种手段。这很容易修复,AngularJS源代码的下一行最后一行说:

}(窗口、文档);
这应改为:

(本文件);
这将至少允许不需要视图的函数继续运行。当然,您仍然需要删除最后一行(尝试在文档中插入样式表的那一行)并导出
angular
变量:

exports.angular=角度;

您试图更新的视图是什么?您应该能够为angular.bootstrap提供一些非根元素来开始编译


如果您使用的是依赖于window的服务,那么您可能还需要提供自己经过调整的
$window
服务

没有太多细节,所以我不确定这个建议是否符合您的意愿。如果您想使用一些需要DOM并且不想向用户显示文档的JS库,请考虑使用页面工作人员模块:

您需要在worker和main.js之间设置事件驱动的通信,就像SDK代码中使用的任何其他内容文档一样:


如果没有一些限制,在附加代码中处理窗口对象不是一个好主意。