注入令牌(Injection Token)是一个可注入的对象,它允许你在Angular应用程序中定义自己的令牌。这个令牌可以用来代替依赖的标记,从而避免了依赖注入中的名称冲突问题、增强了代码的可读性和可维护性。
注入令牌的创建方式如下:
import { InjectionToken } from '@angular/core';
export const MY_TOKEN = new InjectionToken
这里我们创建了一个名为“MY_TOKEN”的注入令牌,并将其定义为一个字符串类型的令牌。
将注入令牌用于组件或服务的依赖注入:
import { Component } from '@angular/core'; import { MY_TOKEN } from './tokens';
@Component({
selector: 'my-component',
template: {{myValue}}
})
export class MyComponent {
constructor(@Inject(MY_TOKEN) public myValue: string) {}
}
这里我们使用Inject装饰器将定义的注入令牌应用于组件中的myValue变量。在这个组件被创建时,Angular会自动解析这个注入令牌并将它的值注入到myValue中。
在这个例子中,如果我们需要改变myValue的值,我们只需要改变MY_TOKEN所代表的实际值即可。这种方法避免了在应用程序中硬编码具体的依赖项,提高了代码的灵活性和可维护性。