javascript - 是否有可能通过多个 JS 脚本影响单个 Angular 应用程序?

标签 javascript html angularjs

快速摘要: 我需要允许两个脚本文件处理同一 Angular 应用程序的不同操作。一个需要初始化应用程序,另一个需要将 templateCache 对象分配给 localStorage 中的一段 JSON。

上下文: 我有几个编译/生成 html 的 python 文件,并且我已经为我的网站(使用 CGI)构建了一个带有此生成 html 的 Angular 应用程序。

该网站的基本结构由 HTML 片段组成,它们像这样组合在一起:

|------------Header---------------|
|-Navigation-|------Content-------|
|-Navigation-|------Content-------|
|-Navigation-|------Content-------|
|------------Footer---------------|

我的标题创建 <head>标签,实例化我的 ng-app并使用$templateCache设置一个我从导航代码调用的模板。我不得不使用 templateCache 而不是 ngViewngRoute由于 CGI 如何发出 html 以及发生顺序的一些限制。

我的“导航”python/html 使用 JS 设置我的应用程序,如下所示:

<script>    
var responsiveCatalog = angular.module('responsiveCatalog', ['ngStorage']);
....controllers...
....config, etc....
</script> 

此导航还包括我的默认 templateCache 对象:

<div ng-include=" 'responsiveItems.html' "></div>

这一切都是为了在内容部分显示我的第一个 templateCache 对象。但是,我需要从 python 生成器中获取“内容”部分的许多信息(与“导航”完全独立的文件),将此数据作为 JSON 存储在本地存储中(因此包含 ngStorage 模块) ,并将其称为我的第二个 templateCache 选项。

我实际上不确定是否可以使用两个单独的 Javascript 实例来引用和影响同一个 Angular 应用程序。我知道这似乎是不好的做法,但我试图防止需要拆除大量遗留架构来影响两个 Javascript 文件和谐的 Angular 应用程序。

提前致谢。

最佳答案

你可以做 angular.module('myAppName').controllers.... 在不同的文件中,只需确保 myAppName 相同即可。 Bug 我觉得它不适用于 config,没有时间测试。如果您需要它们之间的任何通信,请检查 $emit$broadcast

关于javascript - 是否有可能通过多个 JS 脚本影响单个 Angular 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38113673/

相关文章:

php - 如何每隔一分钟将当前值加2?

javascript - Angular ng-class 需要帮助设置

javascript - 如何覆盖 OnBeforeUnload 对话框并将其替换为我自己的?

javascript - 带有最新 TypeScript 的 Durandal

css - 具有圆 Angular 边框的多列 CSS 布局

javascript - Div 破坏了 jQuery Accordion

javascript - 如何在 ionic/angularjs 中预取 url?

angularjs - 使用 karma/jasmine 对 Angular 服务调用进行单元测试

javascript - != 和 !== 与 null 和 undefined 的区别

javascript - 检查数组中是否存在元素而不迭代它