作为suggested我将所有服务包装到一个模块中,因此,我创建了文件来组织它们:
myServicesModule.js
var myServices = angular.module('myServices', []);
serviceA.js
myServices.service('serviceA', function(){...});
和serviceB.js
myServices.service('serviceB', function(){...});
等等。
作为一种好的做法,我们应该尽量避免使用全局变量,那么有什么方法可以避免通过某些东西来声明全局var myServices
,我猜模块是通过名称解析的?我理解通过将所有服务放在一个文件中可以解决这个问题,但我不想创建一个巨大的文件。
答案 0 :(得分:2)
模块函数的第二个参数(依赖项数组)是可选的:
如果设置第二个参数,它将创建模块(并覆盖任何具有相同名称的现有模块):
// Create the module
angular.module('foo', []).controller('FooCtrl', function($scope) {
// ...
});
如果您没有设置第二个参数,它将按名称检索模块,如果模块不存在则失败:
// Retrieve module by its name and fail if module does not exist.
angular.module('foo').controller('FooCtrl', function($scope) {
// ...
});
答案 1 :(得分:1)
angular.module是一个创建,注册和创建的全球场所 检索Angular模块。所有模块(角度核心或第三方) 应该可以使用的应用程序必须使用注册 这种机制。
传递两个或多个参数时,会创建一个新模块。 如果通过 只有一个参数,一个现有模块(名称作为第一个传递 检索模块的参数。
所以这会奏效:
angular.module('myServices', []);
angular.module('myServices').service('serviceA', function(){...});
angular.module('myServices').service('serviceB', function(){...});
答案 2 :(得分:1)
您的服务不需要创建变量。它可以这样做(在不同的文件中): 例如,file1.js:
angular.module('myServices', []);
file2.js
angular.module('myServices').service('serviceA', function(){...});