Angularjs 依赖项注入-声明子模块上的依赖项

Angularjs 依赖项注入-声明子模块上的依赖项,angularjs,dependency-injection,module,Angularjs,Dependency Injection,Module,我应该对使用AngularJS的依赖注入有多严格?我不确定在这方面的普遍共识是什么。但我的主要应用程序模块定义如下: var app = angular.module('app', [ 'ionic', 'ngCordova', 'app.core', 'app.hub' ]); angular.module('app.hub', [ 'app.core' ]); app.core不依赖任何东西,但我在app.core上设置了一个名为AppVersio

我应该对使用AngularJS的依赖注入有多严格?我不确定在这方面的普遍共识是什么。但我的主要应用程序模块定义如下:

var app = angular.module('app', [
    'ionic',
    'ngCordova',
    'app.core',
    'app.hub'
]);
angular.module('app.hub', [
    'app.core'
]);
app.core
不依赖任何东西,但我在
app.core
上设置了一个名为
AppVersion
的服务:

angular.module('app.core')
    .service('AppVersion', function () {
        this.version = '12.5.322b';
    });
app.hub
中的一个我的
控制器使用
AppVersion
服务:

angular.module('app.hub')
    .controller('InitController', ['$scope', 'AppVersion', function ($scope, AppVersion) {
        $scope.version = AppVersion.version;
    }]);
但是
app.hub
的定义没有声明依赖项:

angular.module('app.hub', []);
应该吗?我之所以问这个问题,是因为
app
模块确实将
app.core
声明为依赖项。因此,当加载主
app
模块时,所有子模块都会预先加载
app
取决于
app.hub
app.core
,因此我保证在主模块加载时加载这两个模块

AngularJS不会崩溃,我没有收到任何
console.log
消息。所以它是有效的,但我想知道是否应该将
app.hub
定义如下:

var app = angular.module('app', [
    'ionic',
    'ngCordova',
    'app.core',
    'app.hub'
]);
angular.module('app.hub', [
    'app.core'
]);

定义的每个模块是否应该声明其直接依赖项,而不考虑其他模块依赖项?如果是,为什么?

如果在主模块中声明依赖项,则不需要在子模块中声明依赖项。所有模块依赖项将在整个应用程序中可用。如果您确实在
app.hub
中声明了它,并将其从
app
中删除,则效果相同。实际上可以归结为模块的可移植性(就像在其他项目中使用的一样)以及在哪里最好地声明子模块dependenciesThanks!我猜我应该在尽可能高的级别声明依赖关系?怎么说我不应该声明
应用程序的所有依赖项?它可能会增长很长时间,但它确保了所有的依赖关系无处不在。除了您可能喜欢的任何便利之外,在顶部并没有任何真正的好处。在调用依赖项之前,先编译所有模块,然后再调用Anks man-现在,如果我能接受这个答案就好了…;)@你的评论充分回答了这个问题。请将其作为答案再次发布,以便其他可能需要它的人能够接受、投票并轻松找到它?