родительский компонент:
@Component({
selector: 'app-tripCreation',
templateUrl:
' <app-location (sendLocationDataEvent)="getLocationData($event)"></app-location>
<app-tripInfo [locationDetails]="locationData"></app-tripInfo> '
styleUrls: ['./tripCreation.component.scss']
})
export class TripCreationComponent{
locationData = {};
getLocationData(response: any)
{
this.locationData = response
console.log(this.locationData); // {pickAddressName: "KARWAN BAZAR, TEJGAON, DHAKA CITY", pickAreaID: 346, pickUnionID: 8195, pickThanaID: 512, …}
}
}
первый дочерний компонент:
@Component({
selector: 'app-location',
templateUrl:
'<button type="button" class="btn" id = "set" (click)="setData()" >setData</button>',
styleUrls: ['./location.component.scss']
})
export class LocationComponent{
locationDetails: any = {};
@Output() sendLocationDataEvent = new EventEmitter<any>();
setData(){
this.locationDetails.pickAddressName = "KARWAN BAZAR, TEJGAON, DHAKA CITY";
this.locationDetails.pickAreaID = 346;
this.locationDetails.pickUnionID = 8195;
this.locationDetails.pickThanaID = 512;
this.sendLocationDataEvent.emit(this.locationDetails);
}
}
второй дочерний компонент:
@Component({
selector: 'app-tripInfo',
templateUrl:
'<div *ngIf="pickLocation">
<p><span>pick location is: {{pickLocation}}</span></p> //pick location is:
</div>',
styleUrls: ['./tripInfo.component.scss']
})
export class TripInfoComponent{
@Input() public locationDetails: any = {};
pickLocation: srting = " ";
constructor()
{
console.log(this.locationDetails); // {} -> a blank object
this.pickLocation = this.locationData.pickAddressName;
}
}
Из первого дочернего компонента я отправляю данные типа объекта в родительский компонент. Затем я снова передаю эти данные из родительского во второй дочерний компонент. Родитель получает объект данных и прекрасно его регистрирует. Но второй компонент регистрирует пустой объект. Я не могу понять, где я пропущен?