在我们有一个非常基本的Angular应用程序中
<head>... <script src="app.js"></script> <script src="maincontroller.js"></script>
应用程序定义应用程序模块,然后控制器挂起应用程序作为app.controller(“MainController ..”)如果两个脚本的顺序相反,应用程序将抛出错误“应用程序未定义”.
有没有办法绕过这个加载顺序依赖?我担心随着它变得越来越复杂,我将获得脚本顺序依赖.也许我可能也希望加载我的脚本异步.
谢谢.
解决方法
例如,请参阅此plunker:
http://plnkr.co/edit/kqVqTHxl4tc6mIV5bDbQ
我在自己的文件svc.js中定义了SomeService.我在app.js中定义了模块和主控制器.即使MainController依赖于“稍后加载”的服务,依赖性也会被计算出来并被注入.您应该担心的是:首先放置模块定义.
另外:不要将应用程序存储在名为app的全局变量中,而是使用带有模块名称的angular.module来检索对它的引用:
angular.module( ‘SomeModuleName’).控制器(…)
任何类型的全局变量通常都不是一个好习惯.