编写一个包含多个模块的JavaScript文件是否可以?

时间:2015-08-10 19:00:02

标签: javascript angularjs angularjs-directive

我想到的是,到目前为止我看到的大多数AngularJS(* .js)文件只包含一个模块,模块的名称并不总是与文件名相同。

我想知道,它是否可以通过将多个模块放在一个AngularJS(* .js)文件中来实现。

此外,当网页进行函数调用时,服务器如何找到正确的模块名称?通过以强制方式搜索目录中的每个文件?

4 个答案:

答案 0 :(得分:2)

您可以在文件中放置任意数量的模块(尽管不一定是最佳实践)。 Angular知道要加载哪个模块,因为您使用Angular注册每个模块。

angular.module('myModule', [])

这样就不必根据惯例寻找模块了。

答案 1 :(得分:2)

在HTML元素中使用ng-app="yourModule"在HTML中引用模块名称。在单个文件中包含多个模块根本不是问题。实际上,缩小和混淆过程对生产就绪代码的作用是:将所有Javascript代码合并到一个文件中。

我建议的是:

  • 为了清晰起见,在开发模式下使用多个文件
  • 为了提高效率,使用缩小功能只生产一个文件

答案 2 :(得分:1)

是的,可以将多个模块放在一个文件中。您必须在应用程序引导之前注册所有可用模块,否则会出现依赖性错误。 dependency injection上的页面解释了所有内容。

答案 3 :(得分:1)

最好为每个模块声明使用不同的文件。您可以查看以下指南:Angular Style Guide

使用angular.module注册每个模块,并使用定义的模块定义服务,控制器等。

angular.module("myApp", []); // module is registered
angular.module("myApp").service("myService", function(){}); // service is declared for myApp module.