Angularjs 如何使指令独立于模块

Angularjs 如何使指令独立于模块,angularjs,angularjs-directive,Angularjs,Angularjs Directive,这个问题可能看起来很奇怪。但我喜欢在文件夹中组织我的应用程序,指令在“指令”文件夹中,控制器在“控制器”文件夹中,等等 在我看到的所有示例中,指令都是这样声明的: var app = angular.module('myModule'). directives('myDirective', function(){ }); 我想要的是在一个单独的文件中声明myDirective(该文件不应该知道app变量)。 然后,当我创建myModule时,我想将其指定为myDirective 我该怎么做

这个问题可能看起来很奇怪。但我喜欢在文件夹中组织我的应用程序,指令在“指令”文件夹中,控制器在“控制器”文件夹中,等等

在我看到的所有示例中,指令都是这样声明的:

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

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


我该怎么做?

您不需要使用应用程序变量来定义指令,它只是一个快捷方式,这样您就不必每次在模块中定义内容时都编写
angular.module('myModule')
。在包含指令的文件中,只需像这样定义指令:

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

此指令将成为myModule的一部分。查看如何生成指令和控制器以了解更多详细信息。或者您也可以查看使用不同方法的应用程序模板,但想法相同。

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

指令

angular.module('app.directives', []).directive(...).directive(...)
应用程序

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

您可以对服务、筛选器等执行相同的操作。

这不是我想要的,因为在本例中,我会在指令文件中引用angular.module('myModule')。相反,我希望在声明我的应用程序模块的文件中引用该指令。我能想到的唯一方法是将myDirective分配给它自己的模块(就像你做的那样)然后将该模块作为我的应用程序模块的依赖项。这样做吗?只是一个跟进,它似乎是如何在angular seed项目中完成的。所以我想我会这样做。:)这根本不能回答OP的问题。