Angular 的DI - 类以外的注入

优质
小牛编辑
129浏览
2023-12-01

到目前为止, 已经在数组中使用Angular 2的元数据。 providers 也都是类标识符。 Angular 2让程序员用更详细的“食谱”指定 providers 。 这是通过为提供Angular 2一个对象字面量({})实现的:

这个例子是另一个provide一个类的例子,但它使用Angular 2的更长格式。

这个长格式很方便。 如果程序员想要关闭实现,例如允许一个MockChatWidget,他们可以轻松地做到:

注射器可以使用多个类。 useValueuseFactory是Angular 2可以使用的 provider “recipes”的另外两个示例。 例如:

在假设的app组件中,“Random”可以注入:

上面的例子使用Angular 2的useFactory。 当Angular 2被告知使用来provide 东西时,Angular 2期望提供的值是一个函数。 有时函数和类甚至比需要的更多。 Angular 2有一个名为useValue的“食谱”,这些情况几乎完全相同:

在这种情况下,Math.random的乘积被分配给传递给 provideruseValue属性。