昨天,我们看到如何使用组件(和模块)层次结构来配置依赖注入角。
今天,让我们看看如何使依赖注入成为有条件的。例如,假设我们有一个LoginService
对于需要在开发阶段无法使用或我们不想在开发阶段使用的特性的产品。
然后我们可以做的是配置我们的提供者来根据当前环境做出决定:

使用三元运算符(如果属实)?[那么这个]:[否则那]
,我们可以决定什么时候使用服务而不是替代版本。
如果需要根据其他因素(例如来自其他服务的数据)做出依赖项注入决策,或者有几个不同的可能的服务要注入,则可以使用依赖于其他服务的工厂函数(deps
)注入到工厂函数中,如下所示:

中的依赖项的顺序deps
必须与传递给工厂函数的参数的顺序匹配useFactory
.