【发布时间】:2018-12-04 20:24:26
【问题描述】:
我有一种情况,我希望能够在页面上同时使用多个小部件组件。我想隔离 ContainerComponent 依赖项,以便每个 ContainerComponent 实例引用唯一的服务实例。
例如,我希望以下组件的每个实例都有一个唯一的“FhirService”实例:
export class ContainerComponent implements OnInit, OnDestroy, AfterViewInit {
...
constructor(private _fhir: FhirService, private _questionnaireService: QuestionnaireService, private cdr: ChangeDetectorRef) {}
服务定义:
@Injectable({
providedIn: 'root'
})
export class FhirService {
public guidanceResponseBS: BehaviorSubject<GuidanceResponse>;
constructor(private _http: HttpClient, private _settingsService: SettingsService) {
this.guidanceResponseBS = new BehaviorSubject<GuidanceResponse>(null);
}
...
这是怎么做到的?
【问题讨论】:
-
我想您可能正在尝试以错误的方式使用服务。最初需要它们来提取一些逻辑(方法),因此您不需要多个实例来使用这些方法,因为它们是无状态的。您可以根据需要制作任意数量的组件并在内部包含变量,同时使用相同的服务来执行一些逻辑服务
标签: angular angular-dependency-injection