模块之间的依赖关系指定每个模块(想象一个模块是一个功能包)如何需要其他模块提供的某些功能。
服务依赖是某事物(控制器、服务等)需要特定服务才能工作的方式。
这些是相关的。如果控制器(即)需要另一个模块中的服务,您可以在这里证明模块依赖和服务依赖。如果后面提到的服务在同一个模块内。控制器的模块不必依赖于另一个模块。
所以想象一下:
- 模块A
- 模块B
如果Functionality1
需要Functionality2
,它可以使用它而ModuleA
无需导入ModuleB
,因为它们在同一个模块中。现在如果Functionality2
需要Functionality4
,ModuleA
需要导入,ModuleB
所以Functionality4
可以带入$scope
.ModuleA
AngularJS 中的每个模块都是使用声明angular.module('name', [])
的(注意括号)。并且每个模块(一旦创建)都可以使用angular.module('name')
(注意没有括号)定位。
您提供的代码不应该工作,因为UsersController
(在components.users
模块中声明)需要Users
工厂(在api.users
模块中声明)并且components.users
模块不导入api.users
。
在下面看到它(代码显然失败了)
angular.module('components.users', [])
.controller('UsersController', function(Users) {
console.log(Users);
})
angular.module('api.users', [])
.factory('Users', function() {
return this;
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<span ng-app="components.users" ng-controller="UsersController"></span>
为了使它工作,您可以Users
在同一components.users
模块内声明工厂或api.users
在components.users
.
选项1:Users
在同一components.users
模块内声明。
// create the module
angular.module('components.users', [])
.controller('UsersController', function(Users) {
console.log(Users);
})
// locate the module
angular.module('components.users')
.factory('Users', function() {
return this
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<span ng-app="components.users" ng-controller="UsersController"></span>
选项2:在里面导入api.users
模块components.users
// create the module with a dependency to `api.users`
angular.module('components.users', ['api.users'])
.controller('UsersController', function(Users) {
console.log(Users);
})
// create an independent module `api.users`
angular.module('api.users', [])
.factory('Users', function() {
return this
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<span ng-app="components.users" ng-controller="UsersController"></span>