1

我正在开发一个角度应用程序,并且知道有几种方法可以构建它。

首先是创建一个全局命名空间,例如:

var App = angular.module('app', []);

然后,例如使用控制器,我会这样做:

App.controller('HomeController', ['$scope', function($scope) {

}]);

另一种方法(据我所知)是模块化我的控制器,例如:

angular.module('App', ['home']);

angular.module('home').controller('HomeController', ['$scope', function($scope) {

}]);

另一种方法,如下所示:

angular.module('App'), ['App.controllers']);

angular.module('App.controllers').controller('HomeController', ['$scope', function($scope) {

}]);

这些是否有任何好处,或者是否有最佳实践或通用风格在 Angular 社区中得到适应?

谢谢!

4

2 回答 2

2

因此,在处理了一些使用 AngularJS 的大型项目之后,我想到了一些事情:

  1. 最终结果明智,您概述的三种方法之间没有区别
  2. 注意 2 和 3,你可能会遇到 AngularJS 的错误,抱怨你没有名为“home”的模块。事实证明,调用angular.module('home')告诉 AngularJS 查找已经创建的名为 home 的模块。调用angular.module('home', [])告诉它创建一个名为 home 的新模块。微妙,但主要的区别。

也就是说,如果您正在考虑开发想要在您构建的所有应用程序中重用的组件,我强烈建议您遵循后一种方法。例如,您正在构建一些 Web 应用程序,并且您已经开发了自己的 UI 组件,例如 datepicker、carousel 等。现在,由于您不想一次又一次地对它们进行编码,那么您可以将它们放在一个模块中(说“Common.components”)。

然后,您可以仅将 JS 文件导出为可以包含在所有项目中的库,而无需复制粘贴代码或从大型应用程序的内部提取它。

这为您提供了很好的模块化、可重复使用的部分,可以在各种应用程序中很好地发挥作用。

于 2013-04-11T05:48:19.040 回答
1

我认为这两种方法都没有任何特定的好处。我什至认为他们之间没有任何区别。到目前为止,我不知道任何 Angular.js 代码样式的“指南”。这是可读性和个人品味的问题。这里有几个我觉得有用的链接(Angular 文档并不完美,礼貌地说):

  1. Angular.js 初学者的 8 个技巧
  2. AngularJS 提示和技巧
于 2013-04-11T00:56:23.297 回答