我有一个服务,它有一个内部指令名称列表(让我们称之为listService
)。本着松散耦合应用程序的精神,我希望其他模块能够将它们自己的指令添加到该列表中,而不是在服务模块中静态定义它。
我知道我可以创建一个提供程序来配置这样的服务:
app.provider("listService", ServiceProvider);
app.config(["listServiceProvider", function(listServiceProvider) {
listServiceProvider.add("myDirective");
}]);
同时,我不希望所有定义指令的模块都依赖于服务。所以我想做的是“如果在这个项目中使用了这个服务:配置它;否则:忽略”。
不幸的是,如果上面的代码不可用,则会产生模块错误。listServiceProvider
我还尝试使用具有相同结果的装饰器。
那么我怎样才能有选择地配置服务以获得松散耦合的应用程序呢?