首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角多提供者依赖顺序

角多提供者依赖顺序
EN

Stack Overflow用户
提问于 2016-08-30 22:24:01
回答 2查看 3.6K关注 0票数 17

角DI多提供者机制是否保证某种顺序?

示例:

代码语言:javascript
复制
const TOKEN: OpaqueToken = new OpaqueToken('token');

@Injectable() 
class MyService (@Inject(TOKEN) deps: any[]) {/* What is order of deps? */}

@NgModule ({
  providers: [ 
    {provide: TOKEN, multi: true, useValue: 1},
    {provide: TOKEN, multi: true, useValue: 2},
    {provide: TOKEN, multi: true, useValue: 3},
    MyService
})
class MyModule {}
EN

回答 2

Stack Overflow用户

发布于 2022-03-29 23:27:28

我会答应的。虽然我找不到确切的文件可以说。然而,根据个人经验,我可以说,它们总是按照相同的顺序提供的。我们在整个应用程序中使用多个HttpInterceptors以及一些可注入的操作,它们总是按照提供的顺序注入。而且,由于伊尼蒂里泽拦截器是以这种方式提供的,所以我认为这更正确。您不会希望您的HTTP_拦截器按随机顺序提供。

票数 1
EN

Stack Overflow用户

发布于 2018-04-22 07:20:37

如果您需要在组件X中注入类A,例如,这取决于其他类,最好的方法是将这些类注入到组件X中的A类中,在组件X中,仍然需要声明所有的服务。例如:组件X:

代码语言:javascript
复制
import { Component } from '@angular/core';

import {
  CarService, CarService2, CarService3,
  EngineService, EngineService2, TiresService
} from './car.services';

car.services.ts

代码语言:javascript
复制
import { Injectable } from '@angular/core';

/// Model ///
export class Car {
}

export class Engine {
}

export class Tires {
}

//// Engine services ///
@Injectable()
export class EngineService {
}

@Injectable()
export class EngineService2 {
}

//// Tire services ///
@Injectable()
export class TiresService {
}

/// Car Services ///
@Injectable()
export class CarService {
  id = 'C1';
  constructor(
    protected engineService: EngineService,
    protected tiresService: TiresService) { }
}

@Injectable()
export class CarService2 extends CarService {
  id = 'C2';
  constructor(
    protected engineService: EngineService,
    protected tiresService: TiresService) {
    super(engineService, tiresService);
  }
}

@Injectable()
export class CarService3 extends CarService2 {
  id = 'C3';
  constructor(
    protected engineService: EngineService,
    protected tiresService: TiresService) {
    super(engineService, tiresService);
  }

}

https://stackblitz.com/angular/vomexgeqgdj?file=src%2Fapp%2Fcar.services.ts

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39238002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档