如何使指令独立于模块

时间:2013-04-14 17:18:35

标签: angularjs angularjs-directive

这个问题可能看起来很奇怪。但我喜欢将我的应用程序整理到文件夹中,其中的指令属于'指令'文件夹,控制器和控制器'文件夹等....

在我见过的所有例子中,指令都是这样声明的:

var app = angular.module('myModule').
directives('myDirective', function(){

}); 

我想要的是在一个单独的文件中声明myDirective(它不应该知道app变量。 然后当我创建myModule时,我想将它指定为myDirective。

我该怎么做?

2 个答案:

答案 0 :(得分:9)

我这样做的方法是创建一个指令模块,然后将其注入我的应用程序:

<强>指令

angular.module('app.directives', []).directive(...).directive(...)

应用

angular.module('myApp',['app.directives'])

你可以为服务,过滤器等做同样的事情......

答案 1 :(得分:0)

您不需要使用app变量来定义指令,它只是一个快捷方式,因此您每次要在模块中定义某些内容时都不必编写angular.module('myModule')。在带有指令的文件中,只需定义如下指令:

   angular.module('myModule').directive('myDirective',function(){ ... });

此指令将成为myModule的一部分。看看Yeoman如何生成指令和控制器以获取更多详细信息。或者您可以查看使用不同方法的Angular-seed应用程序模板,但想法是一样的。