Если я правильно понял, вы могли бы сделать так:
Ваш BaseDialogComponent:
@Component({})
export class BaseDialogComponent {
constructor(base: BaseService) {}
}
Ваш theOtherComponent:
@Component({
selector: 'app-other-comp',
template: '<app-base-diag></app-base-diag>',
providers: [{provide: BaseService, useClass: ModifiedService}]
})
export class theOtherComponent {
constructor(){}
}
Делая это, вы говорите Инжектор зависимостей для предоставления ModifiedService вместо BaseService для всех дочерних компонентов вашего theOtherComponent
.
. Для более подробной информации о том, как это работает, я позволю вам прочитать документацию angular: https://angular.io/api/core/Directive#providers https://angular.io/guide/dependency-injection-providers
Редактировать:
Как указано @ enno.void, новый экземпляр вашего ModifiedService будет создаваться для каждого theOtherComponent
. Вместо этого вы можете использовать: {provide: BaseService, useExisting: ModifiedService}
, который будет использовать тот же ModifiedService
, созданный DI в root.