我想关注angularjs推荐(http://docs.angularjs.org/guide/module):
虽然上面的示例很简单,但它不会扩展到很大 应用。相反,我们建议您将应用程序分解为 像这样的多个模块:
服务模块,用于服务声明指令模块,用于 指令声明一个过滤器模块,用于过滤器声明和一个 应用级模块依赖于上述模块,以及哪些 有初始化代码。
所以我创建了仅包含:
的services.js文件window.myservices = angular.module('services', []);
然后我添加了一些服务,其中每个服务文件都以:
开头window.myservices.factory('service1', function() {
....
});
我为filters.js和directives.js做了同样的事。
在我的app.js文件中,我做了:
window.App = angular.module('app', ['services', 'filters', 'directives']).
// run \ config \ whatever
如果不在窗口上创建变量,我怎么能这样做?
答案 0 :(得分:1)
根本不需要全局变量:
// Define your services
angular.module('services', [])
.factory('service1', function(){})
.factory('service2', function(){});
// Define you main app module and specify the dependencies
angular.module('MyApp', ['services']);
答案 1 :(得分:0)
正如Stewie所说,你可以使用angular.modue('service',[])
;
但是你只需要在第一个加载的文件中执行此操作,如下所示:
file1.js
var mod = angular.module('service',['dependancy']);
file2.js
var mod = angular.module('service');
的index.html
<script src="/scripts/file1.js"></script>
<script src="/scripts/file2.js"></script>
另一个选择是使用命名空间......
file1.js
var mod = angular.module('service.part1',[]);
file2.js
var mod = angular.module('service.part2',[]);
main.js
var mod = angular.moduel('service', ['service.part1','service.part2']);
EDIT(plunker):