我为什么要在angularjs中使用几个模块?

时间:2014-08-22 12:43:41

标签: angularjs module

我已经阅读了很多关于angularjs模块的描述,并且对于它们的目的是什么感到困惑。让我用一些代码来解释我的情况,这首先是我应该按照最佳实践做的:

angular.module('secondModule',[]).controller('myController',function(){
    //do something
};

angular.module('app',['secondModule']);

然而,正如我所看到的(以及阅读angularjs源代码的部分内容),这与引擎盖完全相同:

angular.module('app',[]).controller('myController',function(){
    //do something
};

基本上无论我在哪个模块中创建我的控制器,过滤器,指令等,它们仍将全部进入单个全局存储桶,一旦创建控制器,它就会被注册到全局控制器列表并且没有连接永远都是用它创建的模块。

我似乎唯一看到模块适合的是指定浏览器应该按什么顺序解释它们(通过在模块声明中指定依赖项)。

所以问题很简单,我错过了什么,为什么我在使用这些模块创建的内容时仍然使用模块仍然位于同一个全局存储桶中?

1 个答案:

答案 0 :(得分:1)

在像您这样的简单情况下,假设您不打算重复使用代码或将其打包以供第三方使用,则使用模块可能没有实际意义。另一方面,以我正在研究的系统为例。

我们拥有此功能块,允许最终用户或管理员操作某些安全设置。基本上用户可以调整自己的设置,或者管理员可以为用户调整它们。最终用户和管理员的实际调整过程是相同的,但它们位于不同的AngularJS应用程序中。

因此我们将调整代码放在一个单独的模块中,然后从两个单独的AngularJS应用程序中调用该模块。管理员有他们自己的应用程序,现在调用tweak模块,用户有自己的应用程序,现在也加载调整模块。

要更新的一段代码,但它由两个不同的应用程序使用。

在我们的特定应用程序中,它是一个Java应用程序的两个独立方面,它通过使用Spring MVC来处理数据而集成了AngularJS,但两个AngularJS应用程序必然是完全彼此分离的。然而,他们使用相同代码的大部分......

这有意义吗?