AngularAMD:该应用依赖于服务,但服务取决于应用

时间:2015-09-17 23:39:05

标签: angular-amd

我显然遗漏了一些非常基本的东西。

The instructions是要创建一个应用程序,如下所示:

define(['angularAMD'], function (angularAMD) {
    var app = angular.module(app_name, ['webapp']);
    ... // Setup app here. E.g.: run .config with $routeProvider
    return angularAMD.bootstrap(app);
});

然后创建如下的后续项目:

define(['app'], function (app) {
    app.factory('Pictures', function (...) {
        ...
    });
});

这是有用的一句话:

  

任何后续模块定义都只需要app来创建所需的AngularJS服务

那对于后续的模块定义来说非常棒,但是app.configapp.run需要我创建的许多先决条件模块 - - 超出玩具等级的任何应用程序。所以显然有一些我想念的简单解决方案。如何创建应用依赖的服务?

1 个答案:

答案 0 :(得分:1)

您只需使用'angularAMD'注入即可创建服务。 例如,

define(['angularAMD'], function (angularAMD) {
  angularAMD.service('LoggerService',['$log',function($log){
     return function(msg){
        $log.log('message:', msg);
     }
  }]);

});

使用此方法创建的服务在引导应用程序之前可用。因此app可以依赖于这些服务。

可以在angular-AMD示例应用中找到更多类似的代码。