У меня есть поток как - родительский компонент имеет три дочерних компонента.Дочерние элементы имеют все функции, поступающие из ngOnInit родительского компонента.вся работа ребенка на основе родителя.Дочерние компоненты работают с ngOnInit () родительского компонента .ie, когда я перехожу к дочернему компоненту - запускается дочерний ngOnInit (), а затем запускается родительский ngOnInit ().Теперь я хочу, чтобы функция, определенная в родительском компоненте, не работала внутри родительского компонента, но когда она переходит к дочернему компоненту, она должна функционировать.И мы не можем отделить эту функцию и поместить ее только в дочерний элемент (что, возможно, является решением).
Так что мы решили работать над приведенным выше вариантом использования, используя Service SharedComponent, который помогает, поскольку я определяю переменную глобально,
код -
Facility-Definition.service.ts
import { Injectable, OnInit } from '@angular/core';
export interface SharedModel {
factorFlag:boolean
}
@Injectable({
providedIn: 'root'
})
export class FacilityDefinitionService {
SharedComponent: SharedModel = {
factorFlag:false
}
}
parent.component.ts
export class WorkOrderLimitComponent implements OnInit {
shareData;
constructor( private _woFaclityService: FacilityDefinitionService){
this.shareData = _woFaclityService.SharedComponent;
}
ngOnInit(){
addSubscribers() {
//code
if(!this.shareData.factorFlag == true){
//code
});
//code
}
}
child.component.ts
export class FactorFormComponent implements OnInit {
ngOnInit() {
this.shareData.factorFlag = true;
}
}
Но с этой глобальной переменной factorFlag изначально она ложна, как определено в Service.ts икогда вы вводите родительский компонент, он снова ложен.Теперь, когда вы переходите к дочернему компоненту, глобальная переменная factorflag становится истинным глобально, поэтому код в addSubscribeers () родительского компонента становится истинным и запускается.Теперь вы снова возвращаетесь к родительскому компоненту, факторфлаг остается верным, поэтому функция внутри родительского компонента запускается.Мы не можем сделать factorflag = false в ngOnInit () родительского компонента, поскольку при переходе к дочернему компоненту запускается первый дочерний компонент ngOnInit (), а затем запускается родительский компонент ngOnInit ().
Пожалуйста, помогите решить проблему.Мы хотим, чтобы addSubscribeers () запускался, только когда у потомка, а не у родителя