Javascript AngularJS:构建一个将在现有应用程序中运行的chrome扩展

Javascript AngularJS:构建一个将在现有应用程序中运行的chrome扩展,javascript,angularjs,google-chrome-extension,Javascript,Angularjs,Google Chrome Extension,我正在开发一个Chrome扩展,我想用AngularJS构建内容脚本 我希望我的扩展运行的一些网站也使用Angular构建。 这些应用程序无法向我自己的模块添加任何依赖项,并且在应用程序启动后似乎不可能动态注入依赖项 由于已经有一个应用程序在运行,我无法在第一个应用程序的范围内启动自己的应用程序 有没有办法做到这一点?我能想到的唯一方向是并行运行两个角度应用程序。问题显然是名称冲突,因此您必须修补angular代码并拥有自己的版本。当然,完全不鼓励这样做,但为了讨论起见,似乎因为angular包

我正在开发一个Chrome扩展,我想用AngularJS构建内容脚本

我希望我的扩展运行的一些网站也使用Angular构建。 这些应用程序无法向我自己的模块添加任何依赖项,并且在应用程序启动后似乎不可能动态注入依赖项

由于已经有一个应用程序在运行,我无法在第一个应用程序的范围内启动自己的应用程序


有没有办法做到这一点?

我能想到的唯一方向是并行运行两个角度应用程序。问题显然是名称冲突,因此您必须修补angular代码并拥有自己的版本。当然,完全不鼓励这样做,但为了讨论起见,似乎因为angular包含在闭包中,所以可能需要简单的重命名,然后使用重命名的angular。也许是这样的

更改角度=window.angular | |(window.angular={})

到angular=window.extAngular | |(window.extAngular={})


是否可行,或者至少为您提供了一个修补程序的起点

,以便可以在同一个DOM中运行2个Angular应用程序?谢谢你的回答!我从来没有试过。。。但从理论上讲,如果你把第二个重命名,我认为它可以工作。让我们知道…因为Chrome扩展在它自己的沙箱中,我猜不会发生名称冲突,对吗?然而,我刚刚尝试了你的想法,在将window.angular的任何出现重命名为window.extAngular(总共3次)之后,它给了我以下错误:未捕获类型错误:Object#没有方法'element'angular.js:14847未捕获类型错误:Object#没有方法'bootstrap'hmmm。。。是的,如果这是chrome扩展的情况,那么你是对的,不需要任何更改。我以为你遇到了问题,所以你才问。关于例外情况,我不确定。。可能需要在更多地方重命名angular:-\n我没有找到任何其他实例。因此,我尝试不重命名和引导我的应用程序,但我得到了$digest循环溢出。我的标签页越来越大(~1gb)必须崩溃。听起来现在演奏得不好。