typescript 在Angular 15中创建一个可配置的独立(没有模块)服务?

wgx48brx  于 2023-05-01  发布在  TypeScript
关注(0)|答案(1)|浏览(71)

We can configure Angular service using an injection token like this。但是,它使用带提供程序的模块方法来注入配置。有没有一种方法可以在不使用Angular 15中的模块的情况下配置服务?

pengsaosao

pengsaosao1#

实际上,它是直接向前的:

  • 提供令牌
  • 提供服务
  • 注入服务

示例:

// define the token
const token = new InjectionToken<string>('token');

// define a service depending on the token 
@Injectable()
export class MyService {
  // the token gets injected into the service
  constructor(@Inject(token) private token: string) {}

  getValue(): string {
    return this.token;
  }
}

@Component({
  selector: 'my-app',
  standalone: true,
  providers: [
    // provide token & service
    { provide: token, useValue: 'foobar'},
    MyService, 
  ],
  template: ``,
})
export class App {
  constructor(myService: MyService) {
    // enjoy
    console.log(myService.getValue());
  }
}

bootstrapApplication(App);

相关问题