我显然错过了一些非常基本的东西。
说明是创建一个应用程序,像这样:
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.config
和app.run
需要大量的先决条件模块,我应该创建这些模块——就像任何超出玩具级别的应用程序一样。显然我漏掉了一个简单的解。我如何创建应用程序所依赖的服务?
你可以简单地使用'angularAMD'注入来创建服务。例如,
define(['angularAMD'], function (angularAMD) {
angularAMD.service('LoggerService',['$log',function($log){
return function(msg){
$log.log('message:', msg);
}
}]);
});
使用此方法创建的服务在应用程序启动之前可用。因此,应用程序可以依赖这些服务。
更多类似的代码可以在angular-AMD示例应用中找到。