0

我想遵循 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

如果不在窗口上创建变量,我怎么能做到这一点?

4

2 回答 2

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']);
于 2013-07-01T12:01:04.793 回答
0

正如 Stewie 所说,您可以使用angular.modue('service',[]);

但是,您只需要在第一个加载的文件中执行此操作,如下所示:

文件1.js

var mod = angular.module('service',['dependancy']);

文件2.js

var mod = angular.module('service');

索引.html

<script src="/scripts/file1.js"></script>
<script src="/scripts/file2.js"></script>

另一种选择是使用命名空间...

文件1.js

var mod = angular.module('service.part1',[]);

文件2.js

var mod = angular.module('service.part2',[]);

main.js

var mod = angular.moduel('service', ['service.part1','service.part2']);

编辑(plunker):

http://plnkr.co/edit/i75A5CQeSptQjaxvR8qi?p=preview

于 2013-07-01T14:12:20.243 回答