AngularAMD:应用依赖于服务,而服务依赖于应用



我显然错过了一些非常基本的东西。

说明是创建一个应用程序,像这样:

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需要大量的先决条件模块,我应该创建这些模块——就像任何超出玩具级别的应用程序一样。显然我漏掉了一个简单的解。我如何创建应用程序所依赖的服务?

你可以简单地使用'angularAMD'注入来创建服务。例如,

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

使用此方法创建的服务在应用程序启动之前可用。因此,应用程序可以依赖这些服务。

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

最新更新