如何在单独的文件中处理模块

时间:2014-12-05 08:36:12

标签: angularjs

我喜欢把每个控制器,过滤器......放在一个saparate文件中。问题是,我必须复制主html文件中的每个路径。自动化这个工作流程有什么好处?我找到了grunt-concat模块。但是这样吗?

另一个问题是,当我在saparate文件中有不同的模块时,如:

function TestCtrl ($scope) {
 //...
}

angular
    .module('app')
    .controller('TestCtrl', TestCtrl)

我必须将它们添加到我的app.js中:

var app = angular.module('app', ['add here?']);

非常感谢! 罗伯特

2 个答案:

答案 0 :(得分:2)

Grunt concat是连接文件的好方法。

回答你的另一个问题:代码是:

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

但可能你应该重命名变量' app'为了避免与依赖关系混淆,请循环使用#。

编辑:在评论中添加了对您问题的补充答案:

是的,它也适用于[]。您通过angular.module(' name',[])定义了一个模块,如果您的模块依赖它们,则该数组包含依赖项。如果没有,则需要提供空数组。使用两个参数调用angular.module称为setter api以创建模块。在没有数组的情况下使用angular.module(' name')时,您将获得对已创建模块的引用。这对于定义服务,控制器等非常有用,如下所示:

angular.module('appname').controller('controllername'[function(){....}])

正如上一篇评论,你可以链接angular.module api的getter和setter,并完全摆脱(全局)变量app。如:

angular.module('appname',[])
  .controller('controllername'[function(){....}])
  .factory('factoryname', [function(){}])

答案 1 :(得分:0)

Concat和LazyLoad是两个不同的概念,对吗?或者我可以一起使用它们吗?requirejs和lazyload之间的区别是什么?