角度基本负载顺序

时间:2014-11-04 18:03:33

标签: angularjs

在一个非常基本的Angular应用程序中我们有

<head>...
<script src="app.js"></script>
<script src="maincontroller.js"></script>

应用程序定义应用程序模块,然后控制器挂起应用程序app.controller(“MainController ..”)如果两个脚本的顺序相反,应用程序将抛出错误“应用程序未定义”。< / p>

是否有解决此加载顺序依赖关系的方法?我担心随着它变得越来越复杂,我将获得脚本顺序依赖。也许我可能也想加载我的脚本异步。

谢谢。

2 个答案:

答案 0 :(得分:3)

例如,请参阅此plunker:http://plnkr.co/edit/kqVqTHxl4tc6mIV5bDbQ

我在自己的文件SomeService中定义了svc.js。我在app.js中定义了模块和主控制器。即使MainController依赖于“稍后加载”的服务,依赖关系也会被计算出来并注入。您应该担心的是:首先放置模块定义。


另外:不要将应用程序存储在名为app的全局变量中,而是使用带有模块名称的angular.module来检索对它的引用:

angular.module('SomeModuleName').controller(...)

任何类型的全局变量通常都不是一个好习惯。

答案 1 :(得分:2)

请使用Angular and BrowserifyAngular and RequireJS。 Browserify和RequireJS是模块加载器,允许您在index.html中保留1个脚本引用。

Browserify基于构建步骤,将所有JS捆绑到1个文件中。

RequireJS是一个异步模块定义(AMD)加载器,可以异步加载文件。