跨文件拆分AngularJS模块服务

Splitting AngularJS Module Services Across Files

本文关键字:模块 服务 AngularJS 拆分 文件      更新时间:2023-09-26

我有两个AngularJS服务:

service1.js

'use strict';
angular.module('myModule', [])
  .factory('myService1', function() {
    return {
      myFunction: function(options) {
        if (options) {
          // do stuff
      }
    }
  };
});

service2.js

'use strict';
angular.module('myModule', [])
  .factory('myService2', function() {
    return {
      myFunction: function(options) {
        if (options) {
          // do stuff
      }
    }
  };
});

我从官方文档中了解到,这种方法基本上会删除myService1,因为模块被覆盖了。我的问题是,我还有别的选择吗?我真的希望能够在单独的文件中定义我的服务。然而,我只想要一个模块。

谢谢你的真知灼见

你只需要定义一次模块:

angular.module('myModule', []);

然后在不设置依赖项的情况下使用它:

angular.module('myModule');
所以你要么在一个单独的文件中定义模块,要么在第一个服务中定义它,第二个应该是这样的:
angular.module('myModule')
  .factory('myService2', function() { ... });