是否有可能从多个JS脚本中影响单个Angular应用程序?

时间:2016-06-30 03:50:04

标签: javascript html angularjs

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

上下文 我有几个编译/生成html的python文件,我已经使用这个为我的网站发出的html构建了一个角度应用程序(使用CGI)。

该网站的基本构造包含HTML片段,它们如下所示:

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

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

我的“导航”python / html用JS设置了我的应用程序:

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

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

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

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

我不确定我是否可以使用两个单独的Javascript实例来引用和影响同一个Angular应用程序。我知道这似乎是不好的做法,但我正在努力防止拆除大量遗留架构以从两个Javascript文件中协调地影响角度应用程序。

提前致谢。

1 个答案:

答案 0 :(得分:0)

你可以做到 angular.module('myAppName').controllers....在不同的文件中,只需确保myAppName相同即可。错误我不觉得它与config一起使用,没有时间进行测试。如果您需要进行任何通信,请检查$emit$broadcast