我想知道对多个模块重用同一指令的最佳方法是什么。在我看来,指令就像DOM模块一样,因此, Angular 体系结构有点烦人。

我现在的操作方式是:

var mainapp = angular.module('MainApp');
mainapp.controller( ... );

var otherapp = angular.module('OtherApp');
otherapp.controller( ... );

在其他文件中,我有我的指令,我想在这两个 Controller /模块中使用
mainapp.directive('autoselect', function(){ ... });

但是如您所见,我必须指定必须在哪个应用程序中使用它。如果我要在两者中使用,是否必须复制两次相同的代码?

最佳答案

您可以维护一个包含通用(服务,指令,值,常量等)的模块,然后将其插入每个模块。

angular.module('CommonApp',['OtherCommonModule1','OtherCommonModule2']).directive(..);

var mainapp = angular.module('MainApp', ['CommonApp']);
mainapp.controller( ... );

var otherapp = angular.module('OtherApp', ['CommonApp']);
otherapp.controller( ... );

08-19 00:07